Peridynamic Generalized Plane Strain Action System

Description

This action sets up a generalized plane strain model, including kernel to provide coupled off-diagonal Jacobian entries, scalar kernel to provide residual and diagonal Jacobian, and user object to compute residual and diagonal Jacobian for scalar variable.

Constructed MooseObjects

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

FunctionalityReplaced ClassesAssociated Parameters
Out-of-plane scalar variable equilibrium conditionGeneralized Plane Strain ScalarKernelgeneralized_plane_strain_uo: UserObject name of the GeneralizedPlaneStrainUserObjectBasePD
Residual and diagonal Jacobian calculation for scalar out-of-plane strain variablesOrdinary State-based Generalized Plane Strain UserObject or Non-Ordinary State-based Generalized Plane Strain UserObjectout_of_plane_stress_variable: Auxiliary variable name for out-of-plane stress for ordinary state-based generalized plane strain model; or none is required for non-ordinary state-based generalized plane strain model|
Scalar out-of-plan strain coupling with in-plane field variablesOrdinary State-based Generalized Plane Strain Off-diagonal Kernel or Non-Ordinary State-based Generalized Plane Strain Off-diagonal Kernelscalar_out_of_plane_strain: a string of scalar variable 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

Example Input Syntax

Subblocks

The subblocks of the GeneralizedPlaneStrain action are what triggers MOOSE objects to be built. If none of the mechanics is subdomain restricted a single subblock will be used

[Modules]
  [Peridynamics]
    [Mechanics]
      [GeneralizedPlaneStrain]
        [all]
          formulation = ORDINARY_STATE
          out_of_plane_stress_variable = stress_zz
        []
      []
    []
  []
[]
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_OSPD.i)

If different generalized plane strain models are needed, multiple subblocks with subdomain restrictions can be used.

[Modules]
  [Peridynamics]
    [Mechanics]
      [GeneralizedPlaneStrain]
        [block1]
          formulation = ORDINARY_STATE
          scalar_out_of_plane_strain = scalar_strain_zz1
          out_of_plane_stress_variable = stress_zz1
          block = 1001
        []
        [block2]
          formulation = ORDINARY_STATE
          scalar_out_of_plane_strain = scalar_strain_zz2
          out_of_plane_stress_variable = stress_zz2
          block = 1002
        []
      []
    []
  []
[]
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)

Parameters supplied at the [Modules/Peridynamics/GeneralizedPlaneStrain] level act as defaults for the GeneralizedPlaneStrain action subblocks.

Input Parameters

  • displacementsNonlinear variable name for the displacements

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

    Controllable:No

    Description:Nonlinear variable name for the displacements

  • scalar_out_of_plane_strainScalar variable for strain in the out-of-plane direction

    C++ Type:VariableName

    Controllable:No

    Description:Scalar variable for strain in the out-of-plane direction

Required Parameters

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

    Default:__all__

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

    Controllable:No

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

  • blockList of ids of the blocks (subdomains) that the GeneralizedPlaneStrainActionPD will be applied to

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

    Controllable:No

    Description:List of ids of the blocks (subdomains) that the GeneralizedPlaneStrainActionPD will be applied to

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

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

    Controllable:No

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

  • eigenstrain_namesList of eigenstrains to be applied in this strain calculation

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

    Controllable:No

    Description:List of eigenstrains to be applied in this strain calculation

  • factor1Scale factor applied to prescribed out-of-plane pressure

    Default:1

    C++ Type:double

    Controllable:No

    Description:Scale factor applied to prescribed out-of-plane pressure

  • formulationNONORDINARY_STATEPeridynamic formulation options

    Default:NONORDINARY_STATE

    C++ Type:MooseEnum

    Options:ORDINARY_STATE, NONORDINARY_STATE

    Controllable:No

    Description:Peridynamic formulation options

  • full_jacobianFalseParameter to set whether to use the nonlocal full Jacobian formulation for the scalar components

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Parameter to set whether to use the nonlocal full Jacobian formulation for the scalar components

  • inactiveIf specified blocks matching these identifiers will be skipped.

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

    Controllable:No

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

  • out_of_plane_pressure0Function used to prescribe pressure in the out-of-plane direction

    Default:0

    C++ Type:FunctionName

    Controllable:No

    Description:Function used to prescribe pressure in the out-of-plane direction

  • out_of_plane_stress_variableName of out-of-plane stress auxiliary variable

    C++ Type:VariableName

    Controllable:No

    Description:Name of out-of-plane stress auxiliary variable

  • strainSMALLStrain formulation

    Default:SMALL

    C++ Type:MooseEnum

    Options:SMALL, FINITE

    Controllable:No

    Description:Strain formulation

  • temperatureNonlinear variable for the temperature

    C++ Type:VariableName

    Controllable:No

    Description:Nonlinear variable for the temperature

Optional Parameters

Associated Actions

Available Actions

  • Peridynamics App
  • GeneralizedPlaneStrainActionPDClass for setting up the Kernel, ScalarKernel, and UserObject for peridynamic generalized plane strain model