- inputThe mesh based on which PD mesh will be created
C++ Type:MeshGeneratorName
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
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.
Input Parameters
- connect_block_id_pairsList of block id pairs between which will be connected via interfacial bonds
C++ Type:std::vector<unsigned short>
Options:
Description:List of block id pairs between which will be connected via interfacial bonds
 - construct_peridynamics_sidesetFalseWhether to construct peridynamics sidesets based on the sidesets in original FE mesh
Default:False
C++ Type:bool
Options:
Description:Whether to construct peridynamics sidesets based on the sidesets in original FE mesh
 - convert_block_idsIDs of the FE mesh blocks to be converted to PD mesh
C++ Type:std::vector<unsigned short>
Options:
Description:IDs of the FE mesh blocks to be converted to PD mesh
 - non_connect_block_id_pairsList of block pairs between which will not be connected
C++ Type:std::vector<unsigned short>
Options:
Description:List of block pairs between which will not be connected
 - non_convert_block_idsIDs 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 considerable.
C++ Type:std::vector<unsigned short>
Options:
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 considerable.
 - 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
Options:
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
 - single_converted_blockFalseWhether to combine converted PD mesh blocks into a single block. This is used when all PD blocks have the same properties
Default:False
C++ Type:bool
Options:
Description:Whether to combine converted PD mesh blocks into a single block. This is used when all PD blocks have the same properties
 - single_interface_blockFalseWhether to combine interface blocks into a single block. This is used when all interface blocks have the same properties
Default:False
C++ Type:bool
Options:
Description:Whether to combine interface blocks into a single block. This is used when all interface blocks have the same properties
 
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Options:
Description:Adds user-defined labels for accessing object parameters via control logic.
 - enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Options:
Description:Set the enabled status of the MooseObject.
 
Advanced Parameters
Input Files
- (modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_FNOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_BPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_singular_shape_tensor_H1NOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_delete.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_BPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_OSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_single_blocks.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i)
 - (modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_stretch_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_OSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_all_retain.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_finite_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_OSPD.i)
 - (modules/peridynamics/test/tests/plane_stress/conventional_planestress_H1NOSPD.i)
 - (modules/peridynamics/test/tests/nodalkernels/penalty_dirichlet_old_value.i)
 - (modules/peridynamics/test/tests/restart/2D_mesh_restartable_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_center_crack.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_stretch_failure_BPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_heat_conduction_BPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_OSPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/out_of_plane_pressure_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_variableH_BPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_regularD_constH_BPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_OSPD.i)
 - (modules/peridynamics/test/tests/plane_stress/conventional_planestress_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_double_edged_cracks.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_interface.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_stress_failure_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_thermomechanics_FNOSPD.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_small_strain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/auxkernels/planestrain_thermomechanics_ranktwotensor_OSPD.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/planestrain_prescribed_OSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/generalized_planestrain_thermomechanics_OSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_sideset_generation.i)
 - (modules/peridynamics/test/tests/jacobian_check/2D_mechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_retain.i)
 - (modules/peridynamics/test/tests/jacobian_check/3D_mechanics_smallstrain_H2NOSPD.i)
 - (modules/peridynamics/test/tests/plane_stress/weak_planestress_H1NOSPD.i)
 - (modules/peridynamics/test/tests/jacobian_check/weak_planestress_thermomechanics_smallstrain_H1NOSPD.i)
 - (modules/peridynamics/test/tests/failure_tests/2D_bond_status_convergence_BPD.i)
 - (modules/peridynamics/test/tests/heat_conduction/2D_steady_state_BPD.i)
 - (modules/peridynamics/test/tests/mesh/3D_sideset_generation.i)
 - (modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_delete.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
 
(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/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/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_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/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/mesh/2D_mesh_conversion_all_delete.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    convert_block_ids = '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_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/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
    value = '(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-12
  start_time = 0.0
  end_time = 1.0
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_squares_OSPD
[]
(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/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/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/mesh/2D_mesh_conversion_single_blocks.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
    convert_block_ids = '1 2 3 4'
    single_converted_block = true
    connect_block_id_pairs = '1 2 2 3 3 4'
    single_interface_block = true
    construct_peridynamics_sideset = true
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(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/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
    value = '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/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/2D_mesh_conversion_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
    convert_block_ids = '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/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/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/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/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/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/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/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_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/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/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/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
    value = '(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
  [../]
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_H1NOSPD
[]
(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/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
    value = '(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-12
  start_time = 0.0
  end_time = 1.0
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_OSPD
[]
(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
[]
[Outputs]
  exodus = true
  file_base = out_of_plane_pressure_OSPD
[]
(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/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/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/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/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_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/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/2D_mesh_conversion_interface.i)
# Two of four disconnected FE mesh blocks are converted to PD mesh blocks
# Interfacial bonds are formed between these two blocks, and assigned with a block ID
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_4blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    convert_block_ids = '2 3'
    #non_convert_block_ids = '1 4'
    connect_block_id_pairs = '2 3'
    construct_peridynamics_sideset = true
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(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/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/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/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
    value = '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/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
    value = '(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
[]
[Outputs]
  exodus = true
  file_base = planestrain_prescribed_OSPD
[]
(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/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
  picard_max_its = 5
  accept_on_max_picard_iteration = true
  picard_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/mesh/2D_sideset_generation.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = circle.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_peridynamics_sideset = 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_mesh_conversion_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
    convert_block_ids = 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/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/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/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/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
  picard_max_its = 5
  accept_on_max_picard_iteration = true
  picard_custom_pp = bond_status_updated_times
  custom_abs_tol = 2
  disable_picard_residual_norm_check = true
[]
[Outputs]
  file_base = 2D_bond_status_convergence_BPD
  exodus = 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
    value = '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/3D_sideset_generation.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = sphere.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_peridynamics_sideset = true
  [../]
[]
(modules/peridynamics/test/tests/mesh/2D_mesh_conversion_one_delete.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    convert_block_ids = 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_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
[]