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

Set up the GeneralizedPlaneStrain environment

## Description

This action sets up a generalized plane strain model. A detailed description of generalized plane strain model can be found in the formulation page.

GeneralizedPlaneStrain only works for 1D axisymmetric or 2D generalized plane strain cases. For 1D axisymmetric and 2D generalized plane strain cases in the x-y plane the number of displacement variables must be one or two displacements, respectively.

For 2D generalized plane strain cases in the x-z or y-z planes the number of displacement variables must be three.

## Constructed MooseObjects

The `GeneralizedPlaneStrain`

Action is used to construct the kernels, user objects, and scalar out-of-plane variables in a consistent manner as required for a generalized plane strain simulation.

Functionality | Replaced Classes | Associated Parameters |
---|---|---|

Scalar out-of-plan strain coupling with in-plane field variables | Generalized Plane Strain Off-diagonal Kernel | `scalar_out_of_plane_strain` : a list of the scalar variables for the out-of-plane strain direction |

`displacements` : a string of the displacement field (in-plane) variables | ||

`temperature` : a string of the temperature field variable | ||

Out-of-plane scalar variable equilibrium condition | Generalized Plane Strain ScalarKernel | `scalar_out_of_plane_strain` : a list of the scalar variables for the out-of-plane strain direction |

`out_of_plane_direction` : the out-of-plane direction for the scalar out-of-plane strain | ||

Residual and diagonal Jacobian calculation for scalar out-of-plane strain variables | Generalized Plane Strain UserObject | `scalar_out_of_plane_strain` : a list of the scalar variables for the out-of-plane strain direction |

## Example Input Syntax

### Subblocks

The subblocks of the GeneralizedPlaneStrain action are what triggers MOOSE objects to be built. If a generalized plane strain model is applied for the whole simulation domain, a single subblock should be used

```
[./GeneralizedPlaneStrain]
[./gps]
use_displaced_mesh = true
displacements = 'disp_x disp_y'
scalar_out_of_plane_strain = scalar_strain_zz
out_of_plane_pressure = traction_function
factor = 1e5
[../]
[../]
```

(modules/tensor_mechanics/test/tests/generalized_plane_strain/out_of_plane_pressure.i)if different mesh subdomain has different generalized plane strain model, multiple subblocks with subdomain restrictions can be used.

```
[./GeneralizedPlaneStrain]
[./gps1]
use_displaced_mesh = true
displacements = 'disp_x disp_y'
scalar_out_of_plane_strain = scalar_strain_zz1
block = '1'
[../]
[./gps2]
use_displaced_mesh = true
displacements = 'disp_x disp_y'
scalar_out_of_plane_strain = scalar_strain_zz2
block = '2'
[../]
[../]
```

(modules/tensor_mechanics/test/tests/generalized_plane_strain/generalized_plane_strain_squares.i)An example of using generalized plane strain action through the Tensor Mechanics master action with a different `out_of_plane_direction`

than the default of is given by:

```
[./generalized_plane_strain]
block = 1
strain = SMALL
scalar_out_of_plane_strain = scalar_strain_yy
out_of_plane_direction = y
planar_formulation = GENERALIZED_PLANE_STRAIN
eigenstrain_names = 'eigenstrain'
generate_output = 'stress_xx stress_xz stress_yy stress_zz strain_xx strain_xz strain_yy strain_zz'
[../]
```

(modules/tensor_mechanics/test/tests/2D_different_planes/gps_xz.i)Parameters supplied at the `[Modules/TensorMechanics/GeneralizedPlaneStrain]`

level act as defaults for the Master action subblocks.

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

### Optional Parameters

## Associated Actions

## Available Actions

- Tensor Mechanics App
- GeneralizedPlaneStrainActionSet up the GeneralizedPlaneStrain environment