- inputThe mesh based on which PD mesh will be created
C++ Type:MeshGeneratorName
Controllable:No
Description:The mesh based on which PD mesh will be created
 - retain_fe_meshFalseWhether to retain the FE mesh or not after conversion into PD mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether to retain the FE mesh or not after conversion into PD mesh
 
Peridynamics Mesh Generator
Description
The MeshGeneratorPD MeshGenerator selectively converts finite element meshes and boundary sets to peridynamics meshes and corresponding boundary sets. For cases when more than one element block exist in the finite element mesh, user can specify which element block to convert to peridynamics elements and whether the converted finite elements will be retained with the newly created peridynamics elements or not.
For boundary sideset conversion, phantom elements are constructed based on peridynamics material points that were converted from finite elements adjacent to the specified FE boundary sidesets. For 2D FE meshes of either triangular or quadrilateral finite elements, three-node triangular phantom elements are constructed. For 3D FE meshes, the sideset construction currently only accepts hexahedral elements.
Input Parameters
- blocks_as_feIDs of the FE mesh blocks to not be converted to PD mesh. This should only be used when the number of to-be-converted FE blocks is considerably large.
C++ Type:std::vector<unsigned short>
Controllable:No
Description:IDs of the FE mesh blocks to not be converted to PD mesh. This should only be used when the number of to-be-converted FE blocks is considerably large.
 - blocks_to_pdIDs of the FE mesh blocks to be converted to PD mesh
C++ Type:std::vector<unsigned short>
Controllable:No
Description:IDs of the FE mesh blocks to be converted to PD mesh
 - bonding_block_pairsList of FE block pairs between which inter-block bonds will be created after being converted into PD mesh
C++ Type:std::vector<std::vector<unsigned short>>
Controllable:No
Description:List of FE block pairs between which inter-block bonds will be created after being converted into PD mesh
 - construct_pd_sidesetsFalseWhether to construct PD sidesets based on the sidesets in original FE mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether to construct PD sidesets based on the sidesets in original FE mesh
 - merge_pd_blocksFalseWhether to merge all converted PD mesh blocks into a single block. This is used when all PD blocks have the same properties
Default:False
C++ Type:bool
Controllable:No
Description:Whether to merge all converted PD mesh blocks into a single block. This is used when all PD blocks have the same properties
 - merge_pd_interfacial_blocksFalseWhether to merge all PD interfacial mesh blocks into a single block. This is used when all PD interfacial blocks have the same properties
Default:False
C++ Type:bool
Controllable:No
Description:Whether to merge all PD interfacial mesh blocks into a single block. This is used when all PD interfacial blocks have the same properties
 - non_bonding_block_pairsList of FE block pairs between which inter-block bonds will NOT be created after being converted into PD mesh
C++ Type:std::vector<std::vector<unsigned short>>
Controllable:No
Description:List of FE block pairs between which inter-block bonds will NOT be created after being converted into PD mesh
 - sidesets_to_pdIDs of the FE sidesets to be reconstructed based on converted PD mesh
C++ Type:std::vector<short>
Controllable:No
Description:IDs of the FE sidesets to be reconstructed based on converted PD mesh
 
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
 - save_with_nameKeep the mesh from this mesh generator in memory with the name specified
C++ Type:std::string
Controllable:No
Description:Keep the mesh from this mesh generator in memory with the name specified
 
Advanced Parameters
- nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)
 - outputFalseWhether or not to output the mesh file after generating the mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file after generating the mesh
 - show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
 
Debugging Parameters
Input Files
- (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_OSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_finite_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_all_retain.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_OSPD.i)
 - (modules/peridynamics/test/tests/mesh/Error_nonexisting_sideset.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_one_retain.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_small_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_singular_shape_tensor_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_OSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_stretch_failure_BPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_center_crack.i)
 - (modules/peridynamics/test/tests/plane_stress/weak_planestress_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_sidesets_partial_boundary.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/planestrain_prescribed_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_OSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
 - (modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_ranktwotensor_OSPD.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i)
 - (modules/peridynamics/test/tests/plane_stress/conventional_planestress_H1NOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_OSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_H1NOSPD.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i)
 - (modules/peridynamics/test/tests/mesh/2D_double_edged_cracks.i)
 - (modules/peridynamics/test/tests/mesh/Error_wrong_bonding_blockID.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_BPD.i)
 - (modules/peridynamics/test/tests/mesh/3D_sideset.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_heat_conduction_BPD.i)
 - (modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_stretch_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_one.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_BPD.i)
 - (modules/peridynamics/test/tests/nodalkernels/penalty_dirichlet_old_value.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_BPD.i)
 - (modules/peridynamics/test/tests/plane_stress/conventional_planestress_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_BPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_stress_failure_H1NOSPD.i)
 - (modules/peridynamics/test/tests/restart/2D_mesh_restartable_H1NOSPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/weak_planestress_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_FNOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_BPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_FNOSPD.i)
 - (modules/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/out_of_plane_pressure_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/3D_sidesets_partial_boundary.i)
 - (modules/peridynamics/test/tests/heat_conduction/2D_steady_state_BPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_single_interface_block.i)
 
(modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
    initial_condition = 0.5
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/simple_tests/2D_finite_strain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 6
    ny = 6
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 1001
    function = '0.01*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
    strain = FINITE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneFiniteStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeFiniteStrainElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_finite_strain_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/2D_convert_all_retain.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = true
    blocks_to_pd = '1 2'
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_OSPD.i)
# NOTE: this jacobian test for the coupled thermomechanical model must use displaced mesh, otherwise the difference for the first step is huge
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  scalar_out_of_plane_strain = scalar_strain_zz
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
    initial_condition = 0.5
  [../]
  [./scalar_strain_zz]
    order = FIRST
    family = SCALAR
  [../]
[]
[AuxVariables]
  [./stress_zz]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Modules/Peridynamics/Mechanics]
  [./Master]
    [./all]
      formulation = ORDINARY_STATE
    [../]
  [../]
  [./GeneralizedPlaneStrain]
    [./all]
      formulation = ORDINARY_STATE
      out_of_plane_stress_variable = stress_zz
    [../]
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[AuxKernels]
  [./stress_zz]
    type = NodalRankTwoPD
    variable = stress_zz
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
  [../]
  [./thermal_mat]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./scalar_strain_zz]
    order = FIRST
    family = SCALAR
  [../]
[]
[AuxVariables]
  [./stress_zz]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Modules/Peridynamics/Mechanics]
  [./Master]
    [./all]
      formulation = ORDINARY_STATE
    [../]
  [../]
  [./GeneralizedPlaneStrain]
    [./all]
      formulation = ORDINARY_STATE
      out_of_plane_stress_variable = stress_zz
    [../]
  [../]
[]
[AuxKernels]
  [./stress_zz]
    type = NodalRankTwoPD
    variable = stress_zz
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/mesh/Error_nonexisting_sideset.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = disk.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
    sidesets_to_pd = '3'
  [../]
[]
(modules/peridynamics/test/tests/mesh/2D_convert_one_retain.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = true
    blocks_to_pd = 2
    #blocks_as_fe = 1
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/simple_tests/2D_small_strain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 1001
    function = '0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_small_strain_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/failure_tests/2D_singular_shape_tensor_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./critical_stress]
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[AuxKernels]
  [./bond_status]
    type = RankTwoBasedFailureCriteriaNOSPD
    variable = bond_status
    rank_two_tensor = stress
    critical_variable = critical_stress
    failure_criterion = VonMisesStress
  [../]
[]
[UserObjects]
  [./singular_shape_tensor]
    type = SingularShapeTensorEliminatorUserObjectPD
  [../]
[]
[ICs]
  [./critical_stretch]
    type = ConstantIC
    variable = critical_stress
    value = 150
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.002*t'
  [../]
  [./rbm_x]
    type = RBMPresetOldValuePD
    variable = disp_x
    boundary = 999
  [../]
  [./rbm_y]
    type = RBMPresetOldValuePD
    variable = disp_y
    boundary = 999
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./strain]
    type = ComputeSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  dt = 1
  end_time = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_singular_shape_tensor_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H2NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 2
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 3
    nx = 3
    ny = 3
    nz = 3
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_II
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputeSmallStrainNOSPD
    stabilization = BOND_HORIZON_II
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  []
  [gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [scalar_strain_zz]
    order = FIRST
    family = SCALAR
  []
[]
[AuxVariables]
  [temp]
    order = FIRST
    family = LAGRANGE
  []
  [stress_zz]
    order = FIRST
    family = LAGRANGE
  []
[]
[Modules/Peridynamics/Mechanics]
  [Master]
    [all]
      formulation = ORDINARY_STATE
    []
  []
  [GeneralizedPlaneStrain]
    [all]
      formulation = ORDINARY_STATE
      out_of_plane_stress_variable = stress_zz
    []
  []
[]
[AuxKernels]
  [tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  []
  [stress_zz]
    type = NodalRankTwoPD
    variable = stress_zz
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
  []
[]
[Postprocessors]
  [react_z]
    type = NodalVariableIntegralPD
    variable = stress_zz
  []
[]
[Functions]
  [tempfunc]
    type = ParsedFunction
    expression = '(1-x)*t'
  []
[]
[BCs]
  [bottom_x]
    type = DirichletBC
    boundary = 1000
    variable = disp_x
    value = 0.0
  []
  [bottom_y]
    type = DirichletBC
    boundary = 1000
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  []
  [force_density]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-09
  start_time = 0.0
  end_time = 1.0
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_OSPD
[]
(modules/peridynamics/test/tests/failure_tests/2D_stretch_failure_BPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./damage]
  [../]
  [./intact_bonds_num]
  [../]
  [./critical_stretch]
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[AuxKernels]
  [./bond_status]
    type = StretchBasedFailureCriterionPD
    critical_variable = critical_stretch
    variable = bond_status
  [../]
[]
[UserObjects]
  [./damage]
    type = NodalDamageIndexPD
    variable = damage
  [../]
  [./intact_bonds]
    type = NodalNumIntactBondsPD
    variable = intact_bonds_num
  [../]
[]
[ICs]
  [./critical_stretch]
    type = ConstantIC
    variable = critical_stretch
    value = 0.001
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
  [./rbm_x]
    type = RBMPresetOldValuePD
    variable = disp_x
    boundary = 999
  [../]
  [./rbm_y]
    type = RBMPresetOldValuePD
    variable = disp_y
    boundary = 999
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialBPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  dt = 0.5
  end_time = 1
[]
[Outputs]
  file_base = 2D_stretch_failure_BPD
  exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = square.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1004
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1002
    function = '-0.001 * t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./force_density]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_irregularD_variableH_OSPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_smallstrain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./scalar_strain_zz]
    order = FIRST
    family = SCALAR
  [../]
[]
[Modules/Peridynamics/Mechanics]
  [./Master]
    [./all]
      formulation = NONORDINARY_STATE
      stabilization = BOND_HORIZON_I
    [../]
  [../]
  [./GeneralizedPlaneStrain]
    [./all]
      formulation = NONORDINARY_STATE
    [../]
  [../]
[]
[Materials]
  [./elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/mesh/2D_center_crack.i)
# Test for generated mesh with predefined center crack geometry
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 50
    ny = 50
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/plane_stress/weak_planestress_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  out_of_plane_strain = strain_zz
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./strain_zz]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.001
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Kernels]
  [./strain_zz]
    type = WeakPlaneStressNOSPD
    variable = strain_zz
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = weak_planestress_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/mesh/2D_sidesets_partial_boundary.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = disk.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(modules/peridynamics/test/tests/generalized_plane_strain/planestrain_prescribed_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  []
  [gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [temp]
  []
  [scalar_strain_zz]
    order = FIRST
    family = SCALAR
  []
  [strain_zz]
  []
[]
[Modules/Peridynamics/Mechanics/Master]
  [all]
    formulation = ORDINARY_STATE
  []
[]
[AuxKernels]
  [tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  []
  [strain_zz]
    type = NodalRankTwoPD
    variable = strain_zz
    rank_two_tensor = total_strain
    output_type = component
    index_i = 2
    index_j = 2
  []
[]
[AuxScalarKernels]
  [scalar_strain_zz]
    type = FunctionScalarAux
    variable = scalar_strain_zz
    function = scalar_strain_zz_func
  []
[]
[Functions]
  [tempfunc]
    type = ParsedFunction
    expression = '(1 - x) * t'
  []
  [scalar_strain_zz_func]
    type = PiecewiseLinear
    xy_data = '0 0
               1 7.901e-5
               2 1.103021e-2'
  []
[]
[BCs]
  [bottom_x]
    type = DirichletBC
    boundary = 1000
    variable = disp_x
    value = 0.0
  []
  [bottom_y]
    type = DirichletBC
    boundary = 1000
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  []
  [force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0.0
  end_time = 2.0
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = planestrain_prescribed_OSPD
[]
(modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 2
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 3
    nx = 3
    ny = 3
    nz = 3
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputeSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for regular grid from generated mesh with varying bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./force_density]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_regularD_variableH_OSPD
  exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
# Test for bond-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = square.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1004
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1002
    function = '-0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainVariableHorizonMaterialBPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_irregularD_variableH_BPD
  exodus = true
[]
(modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_ranktwotensor_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  poissons_ratio = 0.3
  youngs_modulus = 1e6
  thermal_expansion_coeff = 0.0002
  stress_free_temperature = 0.0
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./temp]
    order = FIRST
    family = LAGRANGE
  [../]
  [./tstrain_xx]
    order = FIRST
    family = LAGRANGE
  [../]
  [./tstrain_yy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./tstrain_zz]
    order = FIRST
    family = LAGRANGE
  [../]
  [./tstrain_xy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./mstrain_xx]
    order = FIRST
    family = LAGRANGE
  [../]
  [./mstrain_yy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./mstrain_zz]
    order = FIRST
    family = LAGRANGE
  [../]
  [./mstrain_xy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./stress_xx]
    order = FIRST
    family = LAGRANGE
  [../]
  [./stress_yy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./stress_zz]
    order = FIRST
    family = LAGRANGE
  [../]
  [./stress_xy]
    order = FIRST
    family = LAGRANGE
  [../]
  [./von_mises]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[AuxKernels]
  [./tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  [../]
  [./tstrain_xx]
    type = NodalRankTwoPD
    variable = tstrain_xx
    rank_two_tensor = total_strain
    output_type = component
    index_i = 0
    index_j = 0
  [../]
  [./tstrain_yy]
    type = NodalRankTwoPD
    variable = tstrain_yy
    rank_two_tensor = total_strain
    output_type = component
    index_i = 1
    index_j = 1
  [../]
  [./tstrain_zz]
    type = NodalRankTwoPD
    variable = tstrain_zz
    rank_two_tensor = total_strain
    output_type = component
    index_i = 2
    index_j = 2
  [../]
  [./tstrain_xy]
    type = NodalRankTwoPD
    variable = tstrain_xy
    rank_two_tensor = total_strain
    output_type = component
    index_i = 0
    index_j = 1
  [../]
  [./mstrain_xx]
    type = NodalRankTwoPD
    variable = mstrain_xx
    rank_two_tensor = mechanical_strain
    output_type = component
    index_i = 0
    index_j = 0
  [../]
  [./mstrain_yy]
    type = NodalRankTwoPD
    variable = mstrain_yy
    rank_two_tensor = mechanical_strain
    output_type = component
    index_i = 1
    index_j = 1
  [../]
  [./mstrain_zz]
    type = NodalRankTwoPD
    variable = mstrain_zz
    rank_two_tensor = mechanical_strain
    output_type = component
    index_i = 2
    index_j = 2
  [../]
  [./mstrain_xy]
    type = NodalRankTwoPD
    variable = mstrain_xy
    rank_two_tensor = mechanical_strain
    output_type = component
    index_i = 0
    index_j = 1
  [../]
  [./stress_xx]
    type = NodalRankTwoPD
    variable = stress_xx
    rank_two_tensor = stress
    output_type = component
    index_i = 0
    index_j = 0
  [../]
  [./stress_yy]
    type = NodalRankTwoPD
    variable = stress_yy
    rank_two_tensor = stress
    output_type = component
    index_i = 1
    index_j = 1
  [../]
  [./stress_zz]
    type = NodalRankTwoPD
    variable = stress_zz
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
  [../]
  [./stress_xy]
    type = NodalRankTwoPD
    variable = stress_xy
    rank_two_tensor = stress
    output_type = component
    index_i = 0
    index_j = 1
  [../]
  [./vonmises]
    type = NodalRankTwoPD
    variable = von_mises
    rank_two_tensor = stress
    output_type = scalar
    scalar_type = VonMisesStress
  [../]
[]
[Functions]
  [./tempfunc]
    type = ParsedFunction
    expression = 'x*x+y*y'
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    boundary = 1003
    variable = disp_x
    value = 0.0
  [../]
  [./bottom_y]
    type = DirichletBC
    boundary = 1000
    variable = disp_y
    value = 0.0
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0.0
  end_time = 1.0
[]
[Outputs]
  exodus = true
  file_base = planestrain_thermomechanics_ranktwotensor_OSPD
[]
(modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_square.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./gap_offset]
  [../]
  [./node_area]
  [../]
[]
[AuxKernels]
  [./gap_offset]
    type = BoundaryOffsetPD
    variable = gap_offset
  [../]
  [./node_area]
    type = NodalVolumePD
    variable = node_area
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./blk1]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  [../]
  [./material_pd]
    type = ComputeSmallStrainVariableHorizonMaterialBPD
  [../]
[]
[BCs]
  [./fix_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0
  [../]
  [./fix_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1001
    value = 0
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  end_time = 1
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/plane_stress/conventional_planestress_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.001
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputePlaneStressIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
  nl_rel_tol = 1e-10
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = conventional_planestress_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_OSPD.i)
# Test for ordinary state-based peridynamic formulation
# for regular grid from generated mesh with const bond constants
# partial Jacobian
# Jacobian from bond-based formulation is used for preconditioning
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001 * t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_regularD_constH_OSPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/2D_mechanics_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./critical_stress]
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[AuxKernels]
  [./bond_status]
    type = RankTwoBasedFailureCriteriaNOSPD
    variable = bond_status
    rank_two_tensor = stress
    critical_variable = critical_stress
    failure_criterion = VonMisesStress
  [../]
[]
[UserObjects]
  [./shape_singularity]
    type = SingularShapeTensorEliminatorUserObjectPD
  [../]
[]
[ICs]
  [./critical_stretch]
    type = ConstantIC
    variable = critical_stress
    value = 150
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.002*t'
  [../]
  [./rbm_x]
    type = RBMPresetOldValuePD
    variable = disp_x
    boundary = 999
  [../]
  [./rbm_y]
    type = RBMPresetOldValuePD
    variable = disp_y
    boundary = 999
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./strain]
    type = ComputeSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Postprocessors]
  [./bond_status_updated_times]
    type = BondStatusConvergedPostprocessorPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  dt = 0.5
  end_time = 1
  fixed_point_max_its = 5
  accept_on_max_fixed_point_iteration = true
  custom_pp = bond_status_updated_times
  custom_abs_tol = 2
  disable_picard_residual_norm_check = true
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_bond_status_convergence_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 3D_cube.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
[]
[AuxVariables]
  [./gap_offset]
  [../]
  [./node_volume]
  [../]
[]
[AuxKernels]
  [./gap_offset]
    type = BoundaryOffsetPD
    variable = gap_offset
  [../]
  [./node_volume]
    type = NodalVolumePD
    variable = node_volume
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./blk1]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  [../]
  [./material_pd]
    type = ComputeSmallStrainVariableHorizonMaterialBPD
  [../]
[]
[BCs]
  [./fix_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0
  [../]
  [./fix_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1001
    value = 0
  [../]
  [./fix_z]
    type = DirichletBC
    variable = disp_z
    boundary = 1001
    value = 0
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  end_time = 1
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/2D_double_edged_cracks.i)
# Test for generated mesh with predefined double_edged crack geometry
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0 0.5 0 1.0 0.5 0'
  cracks_end = '0.25 0.5 0 0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 50
    ny = 50
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/mesh/Error_wrong_bonding_blockID.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    bonding_block_pairs = '3 1'
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [fmg]
    type = FileMeshGenerator
    file = squares.e
  []
  [gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [scalar_strain_zz1]
    order = FIRST
    family = SCALAR
  []
  [scalar_strain_zz2]
    order = FIRST
    family = SCALAR
  []
[]
[AuxVariables]
  [temp]
    order = FIRST
    family = LAGRANGE
  []
  [stress_zz1]
    order = FIRST
    family = LAGRANGE
  []
  [stress_zz2]
    order = FIRST
    family = LAGRANGE
  []
[]
[Modules/Peridynamics/Mechanics]
  [Master]
    [block1]
      formulation = ORDINARY_STATE
      block = 1001
    []
    [block2]
      formulation = ORDINARY_STATE
      block = 1002
    []
  []
  [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
    []
  []
[]
[AuxKernels]
  [tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  []
  [stress_zz1]
    type = NodalRankTwoPD
    variable = stress_zz1
    rank_two_tensor = stress
    scalar_out_of_plane_strain = scalar_strain_zz1
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    output_type = component
    index_i = 2
    index_j = 2
    block = 1001
  []
  [stress_zz2]
    type = NodalRankTwoPD
    variable = stress_zz2
    scalar_out_of_plane_strain = scalar_strain_zz2
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
    block = 1002
  []
[]
[Postprocessors]
  [react_z1]
    type = NodalVariableIntegralPD
    variable = stress_zz1
    block = 1001
  []
  [react_z2]
    type = NodalVariableIntegralPD
    variable = stress_zz2
    block = 1002
  []
[]
[Functions]
  [tempfunc]
    type = ParsedFunction
    expression = '(1-x)*t'
  []
[]
[BCs]
  [bottom1_x]
    type = DirichletBC
    boundary = 1001
    variable = disp_x
    value = 0.0
  []
  [bottom1_y]
    type = DirichletBC
    boundary = 1001
    variable = disp_y
    value = 0.0
  []
  [bottom2_x]
    type = DirichletBC
    boundary = 1002
    variable = disp_x
    value = 0.0
  []
  [bottom2_y]
    type = DirichletBC
    boundary = 1002
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    block = '1001 1002'
  []
  [force_density1]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    scalar_out_of_plane_strain = scalar_strain_zz1
    block = 1001
  []
  [force_density2]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    scalar_out_of_plane_strain = scalar_strain_zz2
    block = 1002
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  l_tol = 1e-8
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-09
  start_time = 0.0
  end_time = 1.0
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_squares_OSPD
[]
(modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_smallstrain_H1NOSPD.i)
# NOTE: this jacobian test for the coupled thermomechanical model must use displaced mesh, otherwise the difference for the first step is huge
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  scalar_out_of_plane_strain = scalar_strain_zz
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
  [../]
  [./scalar_strain_zz]
    order = FIRST
    family = SCALAR
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Modules/Peridynamics/Mechanics]
  [./Master]
    [./all]
      formulation = NONORDINARY_STATE
      stabilization = BOND_HORIZON_I
      eigenstrain_names = thermal
    [../]
  [../]
  [./GeneralizedPlaneStrain]
    [./all]
      formulation = NONORDINARY_STATE
      eigenstrain_names = thermal
    [../]
  [../]
[]
[Materials]
  [./elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0.5
    eigenstrain_name = thermal
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
  [./thermal_mat]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/jacobian_check/2D_mechanics_BPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialBPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/mesh/3D_sideset.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = sphere.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(modules/peridynamics/test/tests/jacobian_check/2D_heat_conduction_BPD.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./temp]
  [../]
[]
[AuxVariables]
  [./bond_status]
    order = CONSTANT
    family = MONOMIAL
    initial_condition = 1
  [../]
[]
[Kernels]
  [./HeatConduction]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./thermal_mat]
    type = ThermalConstantHorizonMaterialBPD
    temperature = temp
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_stretch_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 6
    ny = 6
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./temp]
    order = FIRST
    family = LAGRANGE
  [../]
  [./total_stretch]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mechanical_stretch]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal_strain
  [../]
[]
[AuxKernels]
  [./tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  [../]
  [./total_stretch]
    type = MaterialRealAux
    variable = total_stretch
    property = total_stretch
  [../]
  [./mechanical_stretch]
    type = MaterialRealAux
    variable = mechanical_stretch
    property = mechanical_stretch
  [../]
[]
[Functions]
  [./tempfunc]
    type = ParsedFunction
    expression = 'x*x+y*y'
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    boundary = 1003
    preset = false
    variable = disp_x
    value = 0.0
  [../]
  [./bottom_y]
    type = DirichletBC
    boundary = 1000
    preset = false
    variable = disp_y
    value = 0.0
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal_strain
    plane_strain = true
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 0.0002
    stress_free_temperature = 0.0
    eigenstrain_name = thermal_strain
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  l_tol = 1e-8
  nl_rel_tol = 1e-10
  start_time = 0.0
  end_time = 1.0
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  exodus = true
  file_base = planestrain_thermomechanics_stretch_H1NOSPD
[]
(modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./linelast]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0.5
    eigenstrain_name = thermal
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/mesh/2D_convert_one.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = 1
    #blocks_as_fe = 2
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H2NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_II
    eigenstrain_names = thermal
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./linelast]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_II
    eigenstrain_names = thermal
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0.5
    eigenstrain_name = thermal
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_BPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./critical_stretch]
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[AuxKernels]
  [./bond_status]
    type = StretchBasedFailureCriterionPD
    critical_variable = critical_stretch
    variable = bond_status
  [../]
[]
[ICs]
  [./critical_stretch]
    type = ConstantIC
    variable = critical_stretch
    value = 0.001
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
  [./rbm_x]
    type = RBMPresetOldValuePD
    variable = disp_x
    boundary = 999
  [../]
  [./rbm_y]
    type = RBMPresetOldValuePD
    variable = disp_y
    boundary = 999
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialBPD
  [../]
[]
[Postprocessors]
  [./bond_status_updated_times]
    type = BondStatusConvergedPostprocessorPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  dt = 0.5
  end_time = 1
  fixed_point_max_its = 5
  accept_on_max_fixed_point_iteration = true
  custom_pp = bond_status_updated_times
  custom_abs_tol = 2
  disable_fixed_point_residual_norm_check = true
[]
[Outputs]
  file_base = 2D_bond_status_convergence_BPD
  exodus = true
[]
(modules/peridynamics/test/tests/nodalkernels/penalty_dirichlet_old_value.i)
#In order to compare the solution generated using preset Dirichlet BC, the penalty was set to 1e10.
#Large penalty number should be used with caution.
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gfm]
    type = GeneratedMeshGenerator
    dim = 2
    xmin = -1.1
    xmax = 1.1
    ymin = -1.1
    ymax = 1.1
    nx = 11
    ny = 11
    elem_type = QUAD4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gfm
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./temp]
  [../]
[]
[AuxVariables]
  [./bond_status]
    initial_condition = 1
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
  [./source]
    type = HeatSourceBPD
    variable = temp
    power_density = '-4'
  [../]
[]
[Materials]
  [./thermal_material]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1
    temperature = temp
  [../]
[]
[NodalKernels]
  [./bc_all]
    type = PenaltyDirichletOldValuePD
    variable = temp
    boundary = 'pd_nodes_top pd_nodes_left pd_nodes_right pd_nodes_bottom'
    penalty = 1e10
  [../]
[]
# [BCs]
#   [./fix]
#     type = DirichletBC
#     variable = temp
#     value = 0
#     boundary = 'pd_nodes_top pd_nodes_left pd_nodes_right pd_nodes_bottom'
#   [../]
# []
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  start_time = 0
  end_time = 1
  nl_rel_tol = 1e-14
[]
[Outputs]
  file_base = preset_bc_out
  exodus = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_BPD.i)
# Test for bond-based peridynamic formulation
# for regular grid from generated mesh with const bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialBPD
  [../]
[]
[Functions]
  [./disp_x_anal]
    type = PiecewiseLinear
    axis = x
    x = '0 1'
    y = '0 -0.00033'
  [../]
  [./disp_y_anal]
    type = PiecewiseLinear
    axis = y
    x = '0 1'
    y = '-0.001 0'
  [../]
[]
[Postprocessors]
  [./anal_disp_L2]
    type = NodalFunctionsL2NormPD
    functions = 'disp_x_anal disp_y_anal'
  [../]
  [./disp_diff_L2]
    type = NodalDisplacementDifferenceL2NormPD
    analytic_functions = 'disp_x_anal disp_y_anal'
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_regularD_constH_BPD
  exodus = true
[]
(modules/peridynamics/test/tests/plane_stress/conventional_planestress_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.001
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = ORDINARY_STATE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
    plane_stress = true
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = conventional_planestress_OSPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_BPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
    initial_condition = 0.5
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainConstantHorizonMaterialBPD
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
[]
(modules/peridynamics/test/tests/failure_tests/2D_stress_failure_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  cracks_start = '0.25 0.5 0'
  cracks_end = '0.75 0.5 0'
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 8
    ny = 8
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./damage]
  [../]
  [./intact_bonds_num]
  [../]
  [./critical_stress]
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[AuxKernels]
  [./bond_status]
    type = RankTwoBasedFailureCriteriaNOSPD
    variable = bond_status
    rank_two_tensor = stress
    critical_variable = critical_stress
    failure_criterion = VonMisesStress
  [../]
[]
[UserObjects]
  [./damage]
    type = NodalDamageIndexPD
    variable = damage
  [../]
  [./intact_bonds]
    type = NodalNumIntactBondsPD
    variable = intact_bonds_num
  [../]
[]
[ICs]
  [./critical_stretch]
    type = ConstantIC
    variable = critical_stress
    value = 150
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
  [./rbm_x]
    type = RBMPresetOldValuePD
    variable = disp_x
    boundary = 999
  [../]
  [./rbm_y]
    type = RBMPresetOldValuePD
    variable = disp_y
    boundary = 999
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  dt = 0.5
  end_time = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_stress_failure_H1NOSPD
  exodus = true
[]
(modules/peridynamics/test/tests/restart/2D_mesh_restartable_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1003
    value = 0.0
  [../]
  [./right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.001
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e8
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  start_time = 0
  end_time = 1
  # num_steps = 2
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
[Outputs]
  file_base = 2D_mesh_restartable_H1NOSPD_out
  exodus = true
  checkpoint = true
[]
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  []
  [gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [scalar_strain_zz]
    order = FIRST
    family = SCALAR
  []
[]
[AuxVariables]
  [temp]
    order = FIRST
    family = LAGRANGE
  []
[]
[Modules/Peridynamics/Mechanics]
  [Master]
    [all]
      formulation = NONORDINARY_STATE
      stabilization = BOND_HORIZON_I
    []
  []
  [GeneralizedPlaneStrain]
    [all]
      formulation = NONORDINARY_STATE
    []
  []
[]
[AuxKernels]
  [tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  []
[]
[Functions]
  [tempfunc]
    type = ParsedFunction
    expression = '(1-x)*t'
  []
[]
[BCs]
  [bottom_x]
    type = DirichletBC
    boundary = 1000
    variable = disp_x
    value = 0.0
  []
  [bottom_y]
    type = DirichletBC
    boundary = 1000
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  []
  [strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal
  []
  [thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    eigenstrain_name = thermal
  []
  [stress]
    type = ComputeLinearElasticStress
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  nl_rel_tol = 1e-12
  start_time = 0.0
  end_time = 1.0
  [Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  []
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_H1NOSPD
[]
(modules/peridynamics/test/tests/jacobian_check/weak_planestress_thermomechanics_smallstrain_H1NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  out_of_plane_strain = strain_zz
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./strain_zz]
  [../]
  [./temp]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal_strain
  [../]
[]
[Kernels]
  [./strain_zz]
    type = WeakPlaneStressNOSPD
    variable = strain_zz
    eigenstrain_names = thermal_strain
  [../]
  [./heat_conduction]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.3
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_I
    eigenstrain_names = thermal_strain
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0.5
    eigenstrain_name = thermal_strain
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/jacobian_check/2D_mechanics_FNOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = FORCE
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = FORCE
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_BPD.i)
# Test for bond-based peridynamic formulation
# for regular grid from generated mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1003
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1002
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1000
    function = '-0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainVariableHorizonMaterialBPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_regularD_variableH_BPD
  exodus = true
[]
(modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_FNOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  temperature = temp
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./temp]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = FORCE
    eigenstrain_names = thermal
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConductionBPD
    variable = temp
  [../]
[]
[Materials]
  [./linelast]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    eigenstrain_names = thermal
    stabilization = FORCE
  [../]
  [./thermal_strain]
    type = ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    eigenstrain_name = thermal
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
  [./thermal]
    type = ThermalConstantHorizonMaterialBPD
    thermal_conductivity = 1.0
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = 3
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/generalized_plane_strain/out_of_plane_pressure_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  scalar_out_of_plane_strain = scalar_strain_zz
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  []
  [gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [scalar_strain_zz]
    order = FIRST
    family = SCALAR
  []
[]
[AuxVariables]
  [stress_zz]
    order = FIRST
    family = LAGRANGE
  []
[]
[Modules]
  [Peridynamics/Mechanics]
    [Master]
      [all]
        formulation = ORDINARY_STATE
      []
    []
    [GeneralizedPlaneStrain]
      [all]
        formulation = ORDINARY_STATE
        out_of_plane_stress_variable = stress_zz
        out_of_plane_pressure = pressure_function
        factor = 1e5
      []
    []
  []
[]
[AuxKernels]
  [stress_zz]
    type = NodalRankTwoPD
    variable = stress_zz
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
  []
[]
[Postprocessors]
  [react_z]
    type = NodalVariableIntegralPD
    variable = stress_zz
  []
[]
[Functions]
  [pressure_function]
    type = PiecewiseLinear
    x = '0  1'
    y = '0  1'
  []
[]
[BCs]
  [left_x]
    type = DirichletBC
    boundary = 1003
    variable = disp_x
    value = 0.0
  []
  [bottom_y]
    type = DirichletBC
    boundary = 1000
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
  []
  [force_density]
    type = ComputeSmallStrainConstantHorizonMaterialOSPD
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0.0
  end_time = 1.0
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = out_of_plane_pressure_OSPD
[]
(modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H2NOSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
  full_jacobian = true
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 4
    ny = 4
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = NONORDINARY_STATE
    stabilization = BOND_HORIZON_II
  [../]
[]
[Materials]
  [./elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.0
  [../]
  [./strain]
    type = ComputePlaneSmallStrainNOSPD
    stabilization = BOND_HORIZON_II
  [../]
  [./stress]
    type = ComputeLinearElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
    petsc_options_iname = '-ksp_type -pc_type -snes_type'
    petsc_options_value = 'bcgs bjacobi test'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  end_time = 1
  dt = 1
  num_steps = 1
  [./Quadrature]
    type = GAUSS_LOBATTO
    order = FIRST
  [../]
[]
(modules/peridynamics/test/tests/mesh/3D_sidesets_partial_boundary.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(modules/peridynamics/test/tests/heat_conduction/2D_steady_state_BPD.i)
# This test solves a 2D steady state heat equation
# The error is found by comparing to the analytical solution
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./gmg]
    type = GeneratedMeshGenerator
    dim = 2
    nx = 10
    ny = 10
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = gmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./temp]
  [../]
[]
[AuxVariables]
  [./bond_status]
    order = CONSTANT
    family = MONOMIAL
    initial_condition = 1
  [../]
[]
[Functions]
  [./analytical_sol]
    type = ParsedFunction
    expression = 'x*x+y*y'
  [../]
[]
[Kernels]
  [./heat_conduction]
    type = HeatConductionBPD
    variable = temp
  [../]
  [./heat_source]
    type = HeatSourceBPD
    variable = temp
    power_density = -4
  [../]
[]
[BCs]
  [./left]
    type = FunctionDirichletBC
    variable = temp
    boundary = 1003
    function = analytical_sol
  [../]
  [./bottom]
    type = FunctionDirichletBC
    variable = temp
    boundary = 1000
    function = analytical_sol
  [../]
  [./right]
    type = FunctionDirichletBC
    variable = temp
    boundary = 1001
    function = analytical_sol
  [../]
  [./top]
    type = FunctionDirichletBC
    variable = temp
    boundary = 1002
    function = analytical_sol
  [../]
[]
[Materials]
  [./thermal_mat]
    type = ThermalConstantHorizonMaterialBPD
    temperature = temp
    thermal_conductivity = 1
  [../]
[]
[Postprocessors]
  [./nodal_error]
    type = NodalL2Error
    function = 'analytical_sol'
    variable = temp
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  start_time = 0.0
  end_time = 1.0
[]
[Outputs]
  exodus = true
  file_base = 2D_steady_state_BPD
[]
(modules/peridynamics/test/tests/mesh/2D_single_interface_block.i)
# Four disconnected FE mesh blocks are converted to PD mesh blocks
# Interfacial bonds are formed between blocks 1 and 2, 2 and 3, 3 and 4
# All four PD mesh blocks are combined into one block
# All interfacial bonds are gathered into one block
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_4blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = '1 2 3 4'
    merge_pd_blocks = true
    bonding_block_pairs = '1 2; 2 3; 3 4'
    merge_pd_interfacial_blocks = true
    construct_pd_sidesets = true
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required