- fileThe filename to read.
C++ Type:MeshFileName
Controllable:No
Description:The filename to read.
 
FileMeshGenerator
Read a mesh from a file.
Supported File Formats
The FileMeshGenerator is the default type for MOOSE and as the name suggests it reads the mesh from an external file. MOOSE supports reading and writing a large number of formats and could be extended to read more.
Reading with the FileMeshGenerator. These capabilities are inherited from the libMesh file IO readers.
| Extension | Description | 
|---|---|
| .e, .exd | Sandia's ExodusII format | 
| .bxt | DynaIO | 
| .cpr | Checkpoint file | 
| .fro | ACDL's surface triangulation file | 
| .mat | Matlab triangular ASCII file | 
| .msh | GMSH ASCII file | 
| .n, .nem | Sandia's Nemesis format | 
| .node, .ele; .poly | TetGen ASCII file | 
| .inp | Abaqus .inp format | 
| .off | OFF | 
| .ucd | AVS's ASCII UCD format | 
| .unv | I-deas Universal format | 
| .xda, .xdr | libMesh formats | 
| .vtk, .pvtu | Visualization Toolkit | 
Writing (using the Outputs block). We list these formats here for convenience if you are considering using MOOSE as a mesh file converter.
| Extension | Description | Output type | 
|---|---|---|
| .e, .exd | Sandia's ExodusII format | Exodus | 
| .cpr | Checkpoint file | Checkpoint | 
| .dat | Tecplot ASCII file | Tecplot | 
| .gmv | LANL's GMV (General Mesh Viewer) format | GMV | 
| .n, .nem | Sandia's Nemesis format | Nemesis | 
| .plt | Tecplot binary file | Tecplot | 
| .xda, .xdr | libMesh formats | XDA/XDR | 
| .vtk, .pvtu | Visualization Toolkit | VTK | 
These formats (for writing meshes) are supported by libMesh and could easily be added to MOOSE if needed:
| Extension | Description | 
|---|---|
| .fro | ACDL's surface triangulation file | 
| .mesh, .meshb | Medit | 
| .msh | GMSH ASCII file | 
| .node, .ele; .poly | TetGen ASCII file | 
| .ucd | AVS's ASCII UCD format | 
Unsupported File Formats
These file formats are unsupported, however, using other tools they can be converted to supported formats. In general, the mesh must respect the limitations of the target format for a successful conversion.
Tools offering conversion capabilities:
The conversion capabilities to be able to read those files are summarized here for convenience:
| Extension | Description | Conversion tool | Target format | 
|---|---|---|---|
| .msh | ANSYS msh | meshio | Exodus | 
| .avs | AVS-UCD | meshio | Exodus | 
| .cgns | CGNS | meshio/Paraview | Exodus | 
| .xml | DOLFIN xml | meshio | Exodus | 
| .case | EnSight | Paraview | Exodus | 
| .f3grid | FLAC3D | meshio | Exodus | 
| .grdecl | Eclipse | em2ex | Exodus | 
| .csv | Leapfrog Geothermal | em2ex | Exodus | 
| .h5m | H5M | meshio | Exodus | 
| .mdpa | Kratos/MDPA | meshio | Exodus | 
| .mesh, .meshb | Medit | meshio | Exodus | 
| .med | MED/Salome | meshio | Exodus | 
| .bdf/.fem/.nas | Nastran | meshio | Exodus | 
| .vol | Netgen | meshio | Exodus | 
| Neuroglancer | meshio | Exodus | |
| .obj | OBJ | meshio | Exodus | 
| .post, .dato | PERMAS | meshio | Exodus | 
| .ply | PLY | meshio | Exodus | 
| .stl | STL | meshio | Exodus | 
| .svg | SVG | meshio | Exodus | 
| .su2 | SU2 | meshio | Exodus | 
| .ugrid | UGRID | meshio | Exodus | 
| .tin | WKT TIN | meshio | Exodus | 
| .xdmf, .xmf | XDMF | meshio | Exodus | 
Extra element integer
When reading a mesh file in Sandia's ExodusII format, users can use parameter exodus_extra_element_integers to load elemental variables for setting extra element integers of the mesh. The names of the extra element integers will be the same as the names of the element variables in the mesh file.
Exodus restart
This generator can also be used for restarting variables from the Exodus file format. In order to indicate that the mesh file can be used to restart variables, simply set the parameter use_for_exodus_restart = true. The initial_from_file_var parameter must also be set in the variables sub-block as described in Restart in order to perform variable restart.
Additional documentation about restarting from Exodus may be found in the restart-recovery page.
Loading a split mesh
Mesh splits usually do not require a FileMeshGenerator, they can be performed and loaded from the command line. The only use case for loading a split mesh using a FileMeshGenerator is to perform additional mesh generation on the split. For example, a 2D split mesh can be pre-split before extrusion to avoid ever having to load the full 3D mesh in serial.
To load a split mesh using the FileMeshGenerator, split your mesh as usual using the command line:
- mpirun -n 4 <executable> -i <input_file> --split-mesh 16 --split-file mesh_splitted
then load it with the FileMeshGenerator input parameter by using distributed meshes with the command line option:
- mpirun -n 4 <executable> -i <input_file> --distributed-mesh
Input file:
[fmg]
  type = FileMeshGenerator
  file = 'mesh_splitted.cpr'
[]
Input Parameters
- allow_renumberingTrueWhether to allow the mesh to renumber nodes and elements, if not overridden by a global parameter or by a requirement (e.g. an exodus restart or a constraint matrix) that disables renumbering.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to allow the mesh to renumber nodes and elements, if not overridden by a global parameter or by a requirement (e.g. an exodus restart or a constraint matrix) that disables renumbering.
 - constraint_preconditioning0Whether to attempt preconditioning with constraint matrix application
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Whether to attempt preconditioning with constraint matrix application
 - exodus_extra_element_integersThe variable names in the mesh file for loading extra element integers
C++ Type:std::vector<std::string>
Controllable:No
Description:The variable names in the mesh file for loading extra element integers
 - skip_partitioningFalseTrue to skip partitioning, only after this mesh generator, because the mesh was pre-split for example.
Default:False
C++ Type:bool
Controllable:No
Description:True to skip partitioning, only after this mesh generator, because the mesh was pre-split for example.
 - use_for_exodus_restartFalseTrue to indicate that the mesh file this generator is reading can be used for restarting variables
Default:False
C++ Type:bool
Controllable:No
Description:True to indicate that the mesh file this generator is reading can be used for restarting variables
 
Optional Parameters
- clear_spline_nodesFalseIf clear_spline_nodes=true, IsoGeometric Analyis spline nodes and constraints are removed from an IGA mesh, after which only C^0 Rational-Bernstein-Bezier elements will remain.
Default:False
C++ Type:bool
Controllable:No
Description:If clear_spline_nodes=true, IsoGeometric Analyis spline nodes and constraints are removed from an IGA mesh, after which only C^0 Rational-Bernstein-Bezier elements will remain.
 - constraint_matrixThe name of a constraint matrix file to apply to the mesh
C++ Type:MatrixFileName
Controllable:No
Description:The name of a constraint matrix file to apply to the mesh
 - discontinuous_spline_extractionFalseIf discontinuous_spline_extraction=true, Rational-Bernstein-Bezier elements extracted from a spline mesh will be disconnected from neighboring elements, coupled only via their extraction operators. This may be less efficient than the default C^0 extracted mesh, but may be necessary if the extracted mesh is non-conforming.
Default:False
C++ Type:bool
Controllable:No
Description:If discontinuous_spline_extraction=true, Rational-Bernstein-Bezier elements extracted from a spline mesh will be disconnected from neighboring elements, coupled only via their extraction operators. This may be less efficient than the default C^0 extracted mesh, but may be necessary if the extracted mesh is non-conforming.
 
Isogeometric Analysis (Iga) And Other Mesh Constraint Options Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
 - save_with_nameKeep the mesh from this mesh generator in memory with the name specified
C++ Type:std::string
Controllable:No
Description:Keep the mesh from this mesh generator in memory with the name specified
 
Advanced Parameters
- nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)
 - outputFalseWhether or not to output the mesh file after generating the mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file after generating the mesh
 - show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
 
Debugging Parameters
Input Files
- (modules/reactor/test/tests/meshgenerators/peripheral_ring_mesh_generator/core_ring.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/patch.i)
 - (test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction.i)
 - (tutorials/shield_multiphysics/inputs/step04_heat_conduction/step4.i)
 - (modules/solid_mechanics/examples/coal_mining/coarse.i)
 - (test/tests/meshgenerators/xy_delaunay_generator/xydelaunay_quadratic.i)
 - (test/tests/meshgenerators/mesh_extruder_generator/extrude_quad.i)
 - (modules/contact/test/tests/fieldsplit/frictional_mortar_FS.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction.i)
 - (modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave.i)
 - (test/tests/restart/scalar-var/part2.i)
 - (modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave_with_ADMaterials.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex-action.i)
 - (modules/solid_mechanics/examples/cframe_iga/cframe_iga.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction.i)
 - (test/tests/userobjects/mortar_user_object/test.i)
 - (test/tests/geomsearch/penetration_locator/disconnected_penetration.i)
 - (tutorials/shield_multiphysics/inputs/step10_finite_volume/step10.i)
 - (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
 - (modules/solid_mechanics/test/tests/shell/static/plate_concentrated_loads.i)
 - (modules/contact/test/tests/pdass_problems/ironing_penalty_al.i)
 - (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_element_extra_integer_swap.i)
 - (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_unstructured.i)
 - (modules/solid_mechanics/test/tests/umat/multiple_blocks/rve_multimaterial.i)
 - (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_PINSFV.i)
 - (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-material.i)
 - (test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity-vcp.i)
 - (test/tests/restart/receiver/receiver_restart.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/jeffery-hamel/wedge_dirichlet_fv.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/3d.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_one_retain.i)
 - (modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp_symm.i)
 - (modules/contact/test/tests/fieldsplit/frictionless_mortar_FS.i)
 - (modules/solid_mechanics/test/tests/shell/static/qp_count_error.i)
 - (modules/porous_flow/examples/coal_mining/coarse_with_fluid.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_conduction.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/patch.i)
 - (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar_friction.i)
 - (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_automatic_pair.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/diverger/diverger.i)
 - (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_lowerDblock.i)
 - (test/tests/restart/p_refinement_restart/restarted_steady.i)
 - (test/tests/mortar/periodic-value/periodic.i)
 - (modules/contact/test/tests/bouncing-block-contact/variational-frictional.i)
 - (test/tests/meshgenerators/file_mesh_generator/1d_discontinuous_iga.i)
 - (modules/scalar_transport/test/tests/physics/restart/test_cg.i)
 - (modules/ray_tracing/test/tests/traceray/nonplanar/nonplanar.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_splittrue.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/2d-rc-action-nulltr.i)
 - (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
 - (modules/navier_stokes/test/tests/finite_volume/cns/pressure_outlet/subsonic_nozzle_fixed_inflow_hllc.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_polycrystal.i)
 - (test/tests/meshgenerators/xyz_delaunay_generator/xyzdelaunay_mesh_generator_2d.i)
 - (modules/contact/test/tests/mortar_dynamics/block-dynamics-action.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation.i)
 - (modules/solid_mechanics/test/tests/cohesive_zone_model/czm_patch_test_base.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_yz.i)
 - (modules/peridynamics/test/tests/mesh/Error_nonexisting_sideset.i)
 - (test/tests/mortar/displaced-gap-conductance-2d-non-conforming/gap-conductance.i)
 - (modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_2.i)
 - (test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i)
 - (test/tests/meshgenerators/block_deletion_generator/block_deletion_test11.i)
 - (test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix.i)
 - (modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_dirichlet.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/1d.i)
 - (test/tests/meshgenerators/mesh_extruder_generator/extruder_tri.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_existing_UOs.i)
 - (test/tests/mortar/continuity-2d-non-conforming/soln-continuity-pg.i)
 - (tutorials/shield_multiphysics/inputs/step13_restart/step13b_initialization_from_exodus.i)
 - (tutorials/shield_multiphysics/inputs/step12_physics/step12.i)
 - (test/tests/transfers/multiapp_interpolation_transfer/fromrestrictedsub_sub.i)
 - (modules/navier_stokes/test/tests/finite_volume/materials/ergun/ergun.i)
 - (test/tests/quadrature/qweights/positive_qweights.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_tight_slip.i)
 - (modules/solid_mechanics/test/tests/shell/static/scordelis_lo_roof_shell.i)
 - (test/tests/mortar/continuity-3d-non-conforming/continuity_penalty_sphere_hex.i)
 - (modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_2d.i)
 - (test/tests/fvics/file_ic/file_restart.i)
 - (test/tests/meshgenerators/xyz_delaunay_generator/xyzdelaunay_with_holes_2d.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i)
 - (test/tests/meshdivisions/nested_division.i)
 - (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_interface_boundaries.i)
 - (modules/heat_transfer/test/tests/heat_conduction/2d_quadrature_gap_heat_transfer/perfect_split.i)
 - (modules/solid_mechanics/test/tests/j_integral_vtest/fgm_5.i)
 - (test/tests/meshgenerators/smooth_mesh_generator/mesh_smoother_generator.i)
 - (test/tests/meshgenerators/xyz_delaunay_generator/err_xyzdelaunay_with_holes_mix.i)
 - (modules/contact/test/tests/bouncing-block-contact/variational-frictional-action.i)
 - (test/tests/mortar/continuity-2d-conforming/equalgradient.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_backup.i)
 - (modules/navier_stokes/test/tests/finite_element/pins/expansion-channel/expansion-channel-slip-wall.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar.i)
 - (modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_1.i)
 - (test/tests/positions/element_group_centroid_positions.i)
 - (modules/heat_transfer/test/tests/homogenization/homogenize_tc_hex.i)
 - (modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step.i)
 - (test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity.i)
 - (modules/contact/test/tests/3d-mortar-contact/half_sphere_nodal_geometry.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-stress.i)
 - (modules/solid_mechanics/test/tests/shell/static/clamped_plate_flat.i)
 - (test/tests/meshgenerators/sidesets_by_normals_generator/less_simple.i)
 - (test/tests/mortar/3d-periodic/periodic.i)
 - (modules/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_test_nochange.i)
 - (test/tests/misc/ad_curvature/test-circle.i)
 - (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFV.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_bussetta_simple.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_verbose.i)
 - (tutorials/shield_multiphysics/inputs/step03_boundary_conditions/step3.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action.i)
 - (modules/fsi/test/tests/newmark-beta/test_ALE.i)
 - (test/tests/meshgenerators/gmsh_bcs/gmsh_bcs.i)
 - (test/tests/fvkernels/split-mesh/split_mesh.i)
 - (modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven-skewed/hybrid-skewed-vortex.i)
 - (test/tests/meshgenerators/gmsh/gmsh_test.i)
 - (modules/solid_mechanics/test/tests/cohesive_zone_model/ad_czm.i)
 - (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-aux-kernel.i)
 - (test/tests/mortar/continuity-3d-non-conforming/continuity_mixed.i)
 - (modules/contact/test/tests/multiple_contact_pairs/continuous_sidesets.i)
 - (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance.i)
 - (test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer2.i)
 - (test/tests/meshgenerators/sidesets_from_points_generator/sidesets_from_points.i)
 - (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_2dblock.i)
 - (test/tests/mesh/subdomain_partitioner/subdomain_partitioner.i)
 - (test/tests/misc/no-renumber-disp-mesh-exodus/test.i)
 - (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id_cut.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_auto.i)
 - (test/tests/meshgenerators/add_all_side_sets_generators/simple.i)
 - (test/tests/reporters/extra_id_integral/extra_id_integral.i)
 - (test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga.i)
 - (test/tests/meshgenerators/sideset_extruder_generator/extrude_multiblock.i)
 - (test/tests/mortar/convergence-studies/continuity-3d/continuity.i)
 - (test/tests/meshgenerators/coarsen_block_generator/coarsen_quad_multi.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/fv_modular_gap_heat_transfer_mortar_radiation_conduction.i)
 - (modules/porous_flow/examples/groundwater/ex02_steady_state.i)
 - (modules/contact/test/tests/bouncing-block-contact/ping-ponging/mortar-no-ping-pong_weighted.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/small_patch.i)
 - (test/tests/mesh/tetgen/tetgen_mesh.i)
 - (test/tests/meshgenerators/cut_mesh_by_plane_generator/hex_prism_cut.i)
 - (modules/peridynamics/test/tests/mesh/2D_single_interface_block.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xz.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_balance/large_gap_heat_transfer_test_sphere.i)
 - (modules/contact/test/tests/non-singular-frictional-mortar/frictional-mortar.i)
 - (modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insad.i)
 - (modules/solid_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i)
 - (test/tests/mortar/continuity-2d-conforming/conforming_two_var.i)
 - (test/tests/mortar/mortar-q-points/test.i)
 - (tutorials/shield_multiphysics/inputs/step08_adaptivity/step8_adapt.i)
 - (modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step_two_ducts.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/large_patch.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/2d.i)
 - (modules/electromagnetics/test/tests/benchmarks/waveguide2D/waveguide2D_test.i)
 - (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-action.i)
 - (test/tests/meshgenerators/file_mesh_generator/3d_steady_diffusion_iga.i)
 - (test/tests/partitioners/file_mesh_skip_partition/file_mesh_skip_partitioning.i)
 - (test/tests/mortar/aux-gap/mismatch.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar.i)
 - (test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/action/restart-block-restriction/ns-restart-transient.i)
 - (tutorials/shield_multiphysics/inputs/step11_multiapps/step11_2d_fluid.i)
 - (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian.i)
 - (tutorials/shield_multiphysics/inputs/step11_multiapps/step11_2d_heat_conduction.i)
 - (modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-strain.i)
 - (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-disp.i)
 - (modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp.i)
 - (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
 - (modules/combined/test/tests/gap_heat_transfer_jac/two_blocks.i)
 - (test/tests/fvkernels/mms/skewness-correction/adv-diff-react/skewed.i)
 - (modules/heat_transfer/test/tests/physics/restart/test_fv.i)
 - (modules/solid_mechanics/examples/coal_mining/fine.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_one.i)
 - (modules/contact/test/tests/pdass_problems/frictional_bouncing_block_action.i)
 - (modules/porous_flow/examples/coal_mining/fine_with_fluid.i)
 - (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFE.i)
 - (modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc_nonplanar.i)
 - (test/tests/auxkernels/projection_aux/2d_and_lower_d.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_2d.i)
 - (modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex.i)
 - (test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals_fixed.i)
 - (modules/solid_mechanics/test/tests/postprocessors/normal_boundary_displacement.i)
 - (modules/navier_stokes/test/tests/finite_volume/physics/restart/2d_channel_scalar_turbulence_init.i)
 - (modules/peridynamics/test/tests/mesh/2D_convert_all_retain.i)
 - (modules/reactor/test/tests/meshgenerators/revolve_generator/ei_swap.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al.i)
 - (test/tests/mortar/mesh_modification/mortar_esm_displaced.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
 - (test/tests/ics/from_exodus_solution/elem_part2.i)
 - (test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga_l2.i)
 - (modules/navier_stokes/test/tests/finite_volume/cns/stagnation_inlet/supersonic_nozzle_hllc.i)
 - (modules/porous_flow/examples/groundwater/ex02_abstraction.i)
 - (test/tests/meshgenerators/add_all_side_sets_generators/less_simple.i)
 - (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-action.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere_mortar_error.i)
 - (tutorials/shield_multiphysics/inputs/step13_restart/step13a_base_calc.i)
 - (modules/porous_flow/examples/restart/gas_injection.i)
 - (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_annulus_thermal_contact.i)
 - (modules/solid_mechanics/tutorials/basics/part_3_1.i)
 - (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_pg.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
 - (tutorials/shield_multiphysics/inputs/step06_transient_heat_conduction/step6_transient.i)
 - (test/tests/restart/scalar-var/part3.i)
 - (test/tests/mesh/mesh_only/mesh_only.i)
 - (test/tests/mortar/continuity-2d-conforming/conforming.i)
 - (modules/reactor/test/tests/meshgenerators/reporting_id/depletion_id/depletion_id.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_radiation.i)
 - (modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-action.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_splittrue.i)
 - (test/tests/meshgenerators/elements_to_tetrahedrons_convertor/hex_prism_convert.i)
 - (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse.i)
 - (tutorials/shield_multiphysics/inputs/step02_coef_diffusion/step2.i)
 - (modules/combined/test/tests/3d-mortar-projection-tolerancing/test.i)
 - (modules/combined/test/tests/electromagnetic_joule_heating/fusing_current_through_copper_wire.i)
 - (tutorials/shield_multiphysics/inputs/step07_mechanics/step7.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere_mortar.i)
 - (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar.i)
 - (modules/solid_mechanics/test/tests/cross_section_deflection/test_adapt.i)
 - (test/tests/meshgenerators/coarsen_block_generator/coarsen_hex_multi.i)
 - (modules/solid_mechanics/test/tests/j_integral/j_integral_2d_block_restrict.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_3d.i)
 - (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact.i)
 - (modules/solid_mechanics/test/tests/j_integral_vtest/j_int_fgm_sif.i)
 - (test/tests/userobjects/mortar_user_object/displaced_test.i)
 - (test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga_nosplines.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg.i)
 - (modules/contact/test/tests/pdass_problems/ironing.i)
 - (modules/solid_mechanics/test/tests/CylindricalRankTwoAux/test.i)
 - (test/tests/preconditioners/vcp/vcp_test.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_separate.i)
 - (tutorials/shield_multiphysics/inputs/step06_transient_heat_conduction/step6_pseudo_transient.i)
 - (test/tests/geomsearch/3d_penetration_locator/3d_rings.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction_function.i)
 - (modules/contact/examples/2d_indenter/indenter_rz_fine.i)
 - (test/tests/mortar/aux-gap/gap.i)
 - (modules/porous_flow/examples/multiapp_fracture_flow/3dFracture/fracture_only_aperture_changing.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere.i)
 - (modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap-action.i)
 - (test/tests/meshgenerators/mesh_extruder_generator/extrude_angle.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/neml2/small_neml.i)
 - (modules/electromagnetics/test/tests/benchmarks/eigenvalue_problems/eigen_base.i)
 - (modules/contact/test/tests/multiple_contact_pairs/split_sidesets.i)
 - (test/tests/geomsearch/3d_penetration_locator/3d_disconnected_tet.i)
 - (test/tests/preconditioners/vcp/no_condense_test.i)
 - (modules/xfem/test/tests/solid_mechanics_basic/edge_crack_3d_domain.i)
 - (modules/solid_mechanics/test/tests/shell/static/tank_shell.i)
 - (test/tests/fvics/file_ic/file_restart_linearfv.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_radiation_test.i)
 - (modules/reactor/test/tests/meshgenerators/cartesian_concentric_circle_adaptive_boundary_generator/square_2d.i)
 - (test/tests/fvkernels/mms/skewness-correction/diffusion/skewed.i)
 - (modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insfv.i)
 - (test/tests/meshgenerators/transform_generator/rotate_and_scale.i)
 - (modules/reactor/test/tests/meshgenerators/hexagon_concentric_circle_adaptive_boundary_generator/hex_2d.i)
 - (test/tests/mortar/continuity-2d-non-conforming/soln-continuity.i)
 - (modules/peridynamics/test/tests/mesh/Error_wrong_bonding_blockID.i)
 - (modules/peridynamics/test/tests/mesh/3D_sideset.i)
 - (modules/contact/test/tests/pdass_problems/ironing_penalty_action.i)
 - (modules/contact/test/tests/sliding_block/in_and_out/frictionless_lm.i)
 - (test/tests/meshgenerators/file_mesh_generator/exact_discontinuous_iga.i)
 - (test/tests/meshgenerators/sidesets_between_subdomains_generator/between.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/small_patch.i)
 - (modules/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar_displaced.i)
 - (tutorials/shield_multiphysics/inputs/step05_auxiliary_variables/step5.i)
 - (modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri_refine.i)
 - (modules/peridynamics/test/tests/mesh/2D_sidesets_partial_boundary.i)
 - (test/tests/fvkernels/mms/skewness-correction/two_term_extrapol/advection-outflow.i)
 - (test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator2.i)
 - (test/tests/mortar/gap-conductance-2d-non-conforming/gap-conductance.i)
 - (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact_constant_conductance.i)
 - (test/tests/mesh/splitting/extrude_from_split.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_3d.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/large_patch.i)
 - (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_local_stress.i)
 - (test/tests/meshgenerators/sideset_around_subdomain_generator/around_normals_generator.i)
 - (test/tests/userobjects/solution_user_object/read_exodus_second_order.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al.i)
 - (test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator.i)
 - (modules/peridynamics/test/tests/mesh/3D_sidesets_partial_boundary.i)
 - (modules/porous_flow/examples/fluidflower/fluidflower.i)
 - (test/tests/meshgenerators/elements_to_simplices_converter/hex_prism_convert.i)
 - (modules/contact/test/tests/pdass_problems/ironing_penalty.i)
 - (test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga.i)
 - (modules/solid_mechanics/test/tests/shell/static/tapered.i)
 - (test/tests/meshdivisions/extra_elem_id_division.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-stress.i)
 - (modules/solid_mechanics/test/tests/j_integral_vtest/axisymmetric_solution_tran.i)
 - (test/tests/mortar/continuity-3d-non-conforming/continuity_sphere_hex.i)
 - (test/tests/meshgenerators/ordering_of_execution/modifier_depend_order.i)
 - (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id_block_restricted.i)
 - (modules/contact/test/tests/bouncing-block-contact/grid-sequencing/grid-sequencing.i)
 - (test/tests/mortar/continuity-2d-non-conforming/sequencing-stateful-soln-continuity.i)
 - (test/tests/meshgenerators/file_mesh_generator/exodus_file_mesh_with_id.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_lowerd_exists.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/1d.i)
 - (test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer1.i)
 - (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_boundary_swap.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-strain.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/3d.i)
 - (test/tests/vectorpostprocessors/extra_id_integral/extra_id_vpp.i)
 - (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_various_actions.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_conduction_UOs_function.i)
 - (modules/solid_mechanics/test/tests/shell/static/tank_shell_rotated.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_sphere3D_mortar.i)
 - (modules/navier_stokes/test/tests/finite_volume/pins/channel-flow/hydraulic-separators/separator-energy-nonorthogonal.i)
 - (test/tests/mortar/mesh_modification/mortar_esm.i)
 - (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_multiblock.i)
 - (test/tests/meshgenerators/sidesets_by_normals_generator/simple.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/neml2/large_neml.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_polycrystal.i)
 - (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_tight.i)
 - (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/2d.i)
 - (test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator_sameid.i)
 - (tutorials/shield_multiphysics/inputs/step08_adaptivity/step8_uniform.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i)
 - (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i)
 - (modules/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole_transient.i)
 - (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced.i)
 - (test/tests/meshgenerators/tiled_mesh_generator/tiled_mesh_generator.i)
 - (modules/contact/test/tests/bouncing-block-contact/mixed-weighted-gap-swapped.i)
 - (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_auto.i)
 - (tutorials/shield_multiphysics/inputs/step01_diffusion/step1.i)
 - (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_vcp.i)
 - (tutorials/shield_multiphysics/inputs/step13_restart/step13c_restart_from_checkpoint.i)
 - (test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix_1d.i)
 - (test/tests/meshgenerators/sideset_around_subdomain_generator/around.i)
 - (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/residual_and_jacobian/3d.i)
 - (test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i)
 - (test/tests/mortar/continuity-3d-non-conforming/continuity_non_conforming_tet.i)
 - (test/tests/restart/restart_steady_from_transient/steady_from_transient_restart.i)
 
(modules/reactor/test/tests/meshgenerators/peripheral_ring_mesh_generator/core_ring.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = input_mesh.e
  []
  [tg]
    input = fmg
    type = TransformGenerator
    transform = TRANSLATE
    vector_value = '0 1 0'
  []
  [pr]
    type = PeripheralRingMeshGenerator
    input = fmg
    peripheral_layer_num = 3
    peripheral_ring_radius = 80.0
    input_mesh_external_boundary = 10000
    peripheral_ring_block_id = 250
    peripheral_ring_block_name = reactor_ring
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/special/patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
                  0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  base_name = 'whatever'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = UpdatedLagrangianStressDivergence
    variable = disp_x
    component = 0
    use_displaced_mesh = true
  []
  [sdy]
    type = UpdatedLagrangianStressDivergence
    variable = disp_y
    component = 1
    use_displaced_mesh = true
  []
  [sdz]
    type = UpdatedLagrangianStressDivergence
    variable = disp_z
    component = 2
    use_displaced_mesh = true
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
    elasticity_tensor = elasticity_tensor
  []
  [compute_strain]
    type = ComputeLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
    #parallel_type = replicated
  []
  [./sidesets]
    type = SideSetsFromNormalsGenerator
    input = fmg
    normals = '0  0  1
               0  1  0
               0  0 -1'
    fixed_normal = false
    new_boundary = 'top side bottom'
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = bottom
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = top
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 0.02
    use_displaced_mesh = true
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = 'radiation conduction'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(tutorials/shield_multiphysics/inputs/step04_heat_conduction/step4.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Steady # Steady state problem
  solve_type = NEWTON # Perform a Newton solve, uses AD to compute Jacobian terms
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/solid_mechanics/examples/coal_mining/coarse.i)
# Strata deformation and fracturing around a coal mine - 3D model
#
# A "half model" is used.  The mine is 400m deep and
# just the roof is studied (-400<=z<=0).  The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long.  The outer boundaries
# are 1km from the excavation boundaries.
#
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions for this simulation are:
#  - disp_x = 0 at x=0 and x=1150
#  - disp_y = 0 at y=-1000 and y=1000
#  - disp_z = 0 at z=-400, but there is a time-dependent
#               Young's modulus that simulates excavation
#  - wc_x = 0 at y=-1000 and y=1000
#  - wc_y = 0 at x=0 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa.  The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = 0.025*z MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg.  The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
#
[Mesh]
  [file]
    type = FileMeshGenerator
    file = mesh/coarse.e
  []
  [./xmin]
    input = file
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = xmin
    normal = '-1 0 0'
  [../]
  [./xmax]
    input = xmin
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = xmax
    normal = '1 0 0'
  [../]
  [./ymin]
    input = xmax
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = ymin
    normal = '0 -1 0'
  [../]
  [./ymax]
    input = ymin
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = ymax
    normal = '0 1 0'
  [../]
  [./zmax]
    input = ymax
    type = SideSetsAroundSubdomainGenerator
    block = 16
    new_boundary = zmax
    normal = '0 0 1'
  [../]
  [./zmin]
    input = zmax
    type = SideSetsAroundSubdomainGenerator
    block = 2
    new_boundary = zmin
    normal = '0 0 -1'
  [../]
  [./excav]
    type = SubdomainBoundingBoxGenerator
    input = zmin
    block_id = 1
    bottom_left = '0 0 -400'
    top_right = '150 1000 -397'
  [../]
  [./roof]
    type = SideSetsAroundSubdomainGenerator
    block = 1
    input = excav
    new_boundary = roof
    normal = '0 0 1'
  [../]
[]
[GlobalParams]
  perform_finite_strain_rotations = false
  displacements = 'disp_x disp_y disp_z'
  Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./wc_x]
  [../]
  [./wc_y]
  [../]
[]
[Kernels]
  [./cx_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  [../]
  [./cy_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  [../]
  [./cz_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_z
    component = 2
  [../]
  [./x_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_x
    displacements = 'wc_x wc_y wc_z'
    component = 0
    base_name = couple
  [../]
  [./y_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_y
    displacements = 'wc_x wc_y wc_z'
    component = 1
    base_name = couple
  [../]
  [./x_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_x
    component = 0
  [../]
  [./y_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_y
    component = 1
  [../]
  [./gravity]
    type = Gravity
    use_displaced_mesh = false
    variable = disp_z
    value = -10E-6 # remember this is in MPa
  [../]
[]
[AuxVariables]
  [./wc_z]
  [../]
  [./stress_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_xy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_xz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_shear]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_tensile]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_shear]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_tensile]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_shear_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_shear_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[AuxKernels]
  [./stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
  [../]
  [./stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
  [../]
  [./stress_xz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xz
    index_i = 0
    index_j = 2
  [../]
  [./stress_yx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yx
    index_i = 1
    index_j = 0
  [../]
  [./stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
  [../]
  [./stress_yz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yz
    index_i = 1
    index_j = 2
  [../]
  [./stress_zx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zx
    index_i = 2
    index_j = 0
  [../]
  [./stress_zy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zy
    index_i = 2
    index_j = 1
  [../]
  [./stress_zz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zz
    index_i = 2
    index_j = 2
  [../]
  [./mc_shear]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_internal_parameter
    variable = mc_shear
  [../]
  [./mc_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = mc_plastic_internal_parameter
    variable = mc_tensile
  [../]
  [./wp_shear]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_internal_parameter
    variable = wp_shear
  [../]
  [./wp_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_internal_parameter
    variable = wp_tensile
  [../]
  [./mc_shear_f]
    type = MaterialStdVectorAux
    index = 6
    property = mc_plastic_yield_function
    variable = mc_shear_f
  [../]
  [./mc_tensile_f]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_yield_function
    variable = mc_tensile_f
  [../]
  [./wp_shear_f]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_yield_function
    variable = wp_shear_f
  [../]
  [./wp_tensile_f]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_yield_function
    variable = wp_tensile_f
  [../]
[]
[BCs]
  [./no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'xmin xmax'
    value = 0.0
  [../]
  [./no_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'ymin ymax'
    value = 0.0
  [../]
  [./no_z]
    type = DirichletBC
    variable = disp_z
    boundary = zmin
    value = 0.0
  [../]
  [./no_wc_x]
    type = DirichletBC
    variable = wc_x
    boundary = 'ymin ymax'
    value = 0.0
  [../]
  [./no_wc_y]
    type = DirichletBC
    variable = wc_y
    boundary = 'xmin xmax'
    value = 0.0
  [../]
  [./roof]
    type = StickyBC
    variable = disp_z
    min_value = -3.0
    boundary = roof
  [../]
[]
[Functions]
  [./ini_xx]
    type = ParsedFunction
    expression = '0.8*2500*10E-6*z'
  [../]
  [./ini_zz]
    type = ParsedFunction
    expression = '2500*10E-6*z'
  [../]
  [./excav_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval slope'
    symbol_values = '17.0   0    1000.0 1E-9 1 60'
    # excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
    # slope is the distance over which the modulus reduces from maxval to minval
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
  [../]
  [./density_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval'
    symbol_values = '17.0   0    1000.0 0 2500'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
  [../]
[]
[UserObjects]
  [./mc_coh_strong_harden]
    type = SolidMechanicsHardeningExponential
    value_0 = 2.99 # MPa
    value_residual = 3.01 # MPa
    rate = 1.0
  [../]
  [./mc_fric]
    type = SolidMechanicsHardeningConstant
    value = 0.65 # 37deg
  [../]
  [./mc_dil]
    type = SolidMechanicsHardeningConstant
    value = 0.15 # 8deg
  [../]
  [./mc_tensile_str_strong_harden]
    type = SolidMechanicsHardeningExponential
    value_0 = 1.0 # MPa
    value_residual = 1.0 # MPa
    rate = 1.0
  [../]
  [./mc_compressive_str]
    type = SolidMechanicsHardeningCubic
    value_0 = 100 # Large!
    value_residual = 100
    internal_limit = 0.1
  [../]
  [./wp_coh_harden]
    type = SolidMechanicsHardeningCubic
    value_0 = 0.1
    value_residual = 0.1
    internal_limit = 10
  [../]
  [./wp_tan_fric]
    type = SolidMechanicsHardeningConstant
    value = 0.36 # 20deg
  [../]
  [./wp_tan_dil]
    type = SolidMechanicsHardeningConstant
    value = 0.18 # 10deg
  [../]
  [./wp_tensile_str_harden]
    type = SolidMechanicsHardeningCubic
    value_0 = 0.1
    value_residual = 0.1
    internal_limit = 10
  [../]
  [./wp_compressive_str_soften]
    type = SolidMechanicsHardeningCubic
    value_0 = 100
    value_residual = 1
    internal_limit = 1.0
  [../]
[]
[Materials]
  [./elasticity_tensor_0]
    type = ComputeLayeredCosseratElasticityTensor
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
  [../]
  [./elasticity_tensor_1]
    type = ComputeLayeredCosseratElasticityTensor
    block = 1
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
    elasticity_tensor_prefactor = excav_sideways
  [../]
  [./strain]
    type = ComputeCosseratIncrementalSmallStrain
    eigenstrain_names = ini_stress
  [../]
  [./ini_stress]
    type = ComputeEigenstrainFromInitialStress
    eigenstrain_name = ini_stress
    initial_stress = 'ini_xx 0 0  0 ini_xx 0  0 0 ini_zz'
  [../]
  [./stress_0]
    type = ComputeMultipleInelasticCosseratStress
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    inelastic_models = 'mc wp'
    cycle_models = true
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  [../]
  [./stress_1]
    type = ComputeMultipleInelasticCosseratStress
    block = 1
    inelastic_models = ''
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  [../]
  [./mc]
    type = CappedMohrCoulombCosseratStressUpdate
    warn_about_precision_loss = false
    host_youngs_modulus = 8E3
    host_poissons_ratio = 0.25
    base_name = mc
    tensile_strength = mc_tensile_str_strong_harden
    compressive_strength = mc_compressive_str
    cohesion = mc_coh_strong_harden
    friction_angle = mc_fric
    dilation_angle = mc_dil
    max_NR_iterations = 100000
    smoothing_tol = 0.1 # MPa  # Must be linked to cohesion
    yield_function_tol = 1E-9 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0
  [../]
  [./wp]
    type = CappedWeakPlaneCosseratStressUpdate
    warn_about_precision_loss = false
    base_name = wp
    cohesion = wp_coh_harden
    tan_friction_angle = wp_tan_fric
    tan_dilation_angle = wp_tan_dil
    tensile_strength = wp_tensile_str_harden
    compressive_strength = wp_compressive_str_soften
    max_NR_iterations = 10000
    tip_smoother = 0.1
    smoothing_tol = 0.1 # MPa  # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
    yield_function_tol = 1E-11 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0E-3
  [../]
  [./density_0]
    type = GenericConstantMaterial
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    prop_names = density
    prop_values = 2500
  [../]
  [./density_1]
    type = GenericFunctionMaterial
    block = 1
    prop_names = density
    prop_values = density_sideways
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [./min_roof_disp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = disp_z
  [../]
  [./min_surface_disp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = disp_z
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason'
  petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
  petsc_options_value = ' bjacobi  gmres     200'
  line_search = bt
  nl_abs_tol = 1e-3
  nl_rel_tol = 1e-5
  l_max_its = 30
  nl_max_its = 1000
  start_time = 0.0
  dt = 0.5 # this gives min(disp_z)=-4.3, use dt=0.0625 if you want to restrict disp_z>=-3.2
  end_time = 17.0
[]
[Outputs]
  time_step_interval = 1
  print_linear_residuals = false
  exodus = true
  csv = true
  console = true
[]
(test/tests/meshgenerators/xy_delaunay_generator/xydelaunay_quadratic.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = accg_one_layer_quadratic.e
  []
  [ext]
    type = PolyLineMeshGenerator
    points = '-4.0 0.0 0.0
              0.0 -4.0 0.0
              4.0 0.0 0.0
              0.0 4.0 0.0'
    loop = true
  []
  [xyd]
    type = XYDelaunayGenerator
    boundary = 'ext'
    holes = 'fmg'
    stitch_holes = 'true'
    refine_holes = 'false'
    verify_holes = 'false'
    add_nodes_per_boundary_segment = 2
    refine_boundary = true
    desired_area = 1.0
    tri_element_type = TRI6
  []
[]
(test/tests/meshgenerators/mesh_extruder_generator/extrude_quad.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = chimney_quad.e
  []
  [./extrude]
    type = MeshExtruderGenerator
    input = fmg
    num_layers = 20
    extrusion_vector = '0 1e-2 0'
    bottom_sideset = 'new_bottom'
    top_sideset = 'new_top'
  []
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = 'new_bottom'
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = 'new_top'
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  file_base = out_quad
  exodus = true
[]
(modules/contact/test/tests/fieldsplit/frictional_mortar_FS.i)
offset = 0.021
vy = 0.15
vx = 0.04
refine = 1
[GlobalParams]
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [original_file_mesh]
    type = FileMeshGenerator
    file = long_short_blocks.e
  []
  uniform_refine = ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    incremental = true
    add_variables = true
    block = '1 2'
    use_automatic_differentiation = true
  []
[]
[Functions]
  [horizontal_movement]
    type = ParsedFunction
    expression = 'if(t<0.5,${vx}*t-${offset},${vx}-${offset})'
  []
  [vertical_movement]
    type = ParsedFunction
    expression = 'if(t<0.5,${offset},${vy}*(t-0.5)+${offset})'
  []
[]
[BCs]
  [push_left_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = horizontal_movement
    preset = false
  []
  [fix_right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [fix_right_y]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  []
  [push_left_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = vertical_movement
    preset = false
  []
[]
[Materials]
  [elasticity_tensor_left]
    type = ADComputeIsotropicElasticityTensor
    block = 1
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  []
  [stress_left]
    type = ADComputeFiniteStrainElasticStress
    block = 1
  []
  [elasticity_tensor_right]
    type = ADComputeIsotropicElasticityTensor
    block = 2
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  []
  [stress_right]
    type = ADComputeFiniteStrainElasticStress
    block = 2
  []
[]
[Contact]
  [leftright]
    secondary = 10
    primary = 20
    model = coulomb
    friction_coefficient = 0.2
    formulation = mortar
    c_normal = 1e5
    c_tangential = 1e4
  []
[]
[ICs]
  [disp_y]
    block = 1
    variable = disp_y
    value = ${offset}
    type = ConstantIC
  []
  [disp_x]
    block = 1
    variable = disp_x
    value = -${offset}
    type = ConstantIC
  []
[]
[Preconditioning]
  [FSP]
    type = FSP
    topsplit = 'contact_interior'
    [contact_interior]
      splitting = 'interior contact'
      splitting_type = schur
      petsc_options = '-snes_ksp_ew'
      petsc_options_iname = '-ksp_gmres_restart -pc_fieldsplit_schur_fact_type -mat_mffd_err'
      petsc_options_value = '200                full                           1e-5'
      schur_pre = 'S'
    []
    [interior]
      vars = 'disp_x disp_y'
      petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type '
      petsc_options_value = 'gmres   hypre  boomeramg'
    []
    [contact]
      vars = 'leftright_normal_lm leftright_tangential_lm'
    []
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  dt = 0.1
  end_time = 1
  abort_on_solve_fail = true
  l_max_its = 200
  nl_abs_tol = 1e-8
  line_search = 'none'
  nl_max_its = 20
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 10.0
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = conduction
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave.i)
# Evanescent wave decay benchmark
# frequency = 20 GHz
# eps_R = 1.0
# mu_R = 1.0
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = waveguide_discontinuous.msh
  []
[]
[Functions]
  [waveNumberSquared]
    type = ParsedFunction
    expression = '(2*pi*20e9/3e8)^2'
  []
  [omegaMu]
    type = ParsedFunction
    expression = '2*pi*20e9*4*pi*1e-7'
  []
  [beta]
    type = ParsedFunction
    expression = '2*pi*20e9/3e8'
  []
  [curr_real]
    type = ParsedVectorFunction
    expression_y = 1.0
  []
  [curr_imag] # defaults to '0.0 0.0 0.0'
    type = ParsedVectorFunction
  []
[]
[Variables]
  [E_real]
    family = NEDELEC_ONE
    order = FIRST
  []
  [E_imag]
    family = NEDELEC_ONE
    order = FIRST
  []
[]
[Kernels]
  [curlCurl_real]
    type = CurlCurlField
    variable = E_real
  []
  [coeff_real]
    type = VectorFunctionReaction
    variable = E_real
    function = waveNumberSquared
    sign = negative
  []
  [source_real]
    type = VectorCurrentSource
    variable = E_real
    component = real
    source_real = curr_real
    source_imag = curr_imag
    function_coefficient = omegaMu
    block = source
  []
  [curlCurl_imag]
    type = CurlCurlField
    variable = E_imag
  []
  [coeff_imag]
    type = VectorFunctionReaction
    variable = E_imag
    function = waveNumberSquared
    sign = negative
  []
  [source_imaginary]
    type = VectorCurrentSource
    variable = E_imag
    component = imaginary
    source_real = curr_real
    source_imag = curr_imag
    function_coefficient = omegaMu
    block = source
  []
[]
[BCs]
  [absorbing_left_real]
    type = VectorEMRobinBC
    variable = E_real
    component = real
    beta = beta
    coupled_field = E_imag
    mode = absorbing
    boundary = 'port'
  []
  [absorbing_right_real]
    type = VectorEMRobinBC
    variable = E_real
    component = real
    beta = beta
    coupled_field = E_imag
    mode = absorbing
    boundary = 'exit'
  []
  [absorbing_left_imag]
    type = VectorEMRobinBC
    variable = E_imag
    component = imaginary
    beta = beta
    coupled_field = E_real
    mode = absorbing
    boundary = 'port'
  []
  [absorbing_right_imag]
    type = VectorEMRobinBC
    variable = E_imag
    component = imaginary
    beta = beta
    coupled_field = E_real
    mode = absorbing
    boundary = 'exit'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
[Outputs]
  exodus = true
  print_linear_residuals = true
[]
[Debug]
  show_var_residual_norms = true
[]
(test/tests/restart/scalar-var/part2.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = part1_out.e
    use_for_exodus_restart = true
  []
[]
[Variables]
  [v]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_from_file_var = v
  []
  [lambda]
    family = SCALAR
    order = FIRST
    initial_from_file_var = lambda
  []
[]
[FVKernels]
  [advection]
    type = FVElementalAdvection
    variable = v
    velocity = '1 0 0'
  []
  [lambda]
    type = FVScalarLagrangeMultiplier
    variable = v
    lambda = lambda
    phi0 = 1
  []
[]
[Executioner]
  type = Steady
  petsc_options_iname = '-snes_max_it'
  petsc_options_value = '0'
  nl_abs_tol = 1e-10
[]
[Outputs]
  [out]
    type = Exodus
    execute_on = 'final'
  []
[]
(modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave_with_ADMaterials.i)
# This test is exactly the same as 'evanescent_wave/evanescent_wave.i'
# except it uses ADMatWaveReaction and WaveEquationCoefficient instead of VectorFunctionReaction
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = waveguide_discontinuous.msh
  []
[]
[Functions]
  [omegaMu]
    type = ParsedFunction
    expression = '2*pi*20e9*4*pi*1e-7'
  []
  [beta]
    type = ParsedFunction
    expression = '2*pi*20e9/3e8'
  []
  [curr_real]
    type = ParsedVectorFunction
    expression_y = 1.0
  []
  [curr_imag] # defaults to '0.0 0.0 0.0'
    type = ParsedVectorFunction
  []
  [eps_real_func]
    type = ParsedFunction
    expression = '1'
  []
  [mu_real_func]
    type = ParsedFunction
    expression = '(1 / 3e8)^2'
  []
  [k_real_func]
    type = ParsedFunction
    expression = '2*pi*20e9'
  []
[]
[Materials]
  [WaveCoeff]
    type = WaveEquationCoefficient
    eps_rel_imag = 0
    eps_rel_real = eps_real
    k_real = k_real
    mu_rel_imag = 0
    mu_rel_real = mu_real
  []
  [eps_real]
    type = ADGenericFunctionMaterial
    prop_names = eps_real
    prop_values = eps_real_func
  []
  [mu_real]
    type = ADGenericFunctionMaterial
    prop_names = mu_real
    prop_values = mu_real_func
  []
  [k_real]
    type = ADGenericFunctionMaterial
    prop_names = k_real
    prop_values = k_real_func
  []
[]
[Variables]
  [E_real]
    family = NEDELEC_ONE
    order = FIRST
  []
  [E_imag]
    family = NEDELEC_ONE
    order = FIRST
  []
[]
[Kernels]
  [curlCurl_real]
    type = CurlCurlField
    variable = E_real
  []
  [coeff_real]
    type = ADMatWaveReaction
    variable = E_real
    field_real =  E_real
    field_imag =  E_imag
    wave_coef_real = wave_equation_coefficient_real
    wave_coef_imag = wave_equation_coefficient_imaginary
    component = real
  []
  [source_real]
    type = VectorCurrentSource
    variable = E_real
    component = real
    source_real = curr_real
    source_imag = curr_imag
    function_coefficient = omegaMu
    block = source
  []
  [curlCurl_imag]
    type = CurlCurlField
    variable = E_imag
  []
  [coeff_imag]
    type = ADMatWaveReaction
    variable = E_imag
    field_real =  E_real
    field_imag =  E_imag
    wave_coef_real = wave_equation_coefficient_real
    wave_coef_imag = wave_equation_coefficient_imaginary
    component = imaginary
  []
  [source_imaginary]
    type = VectorCurrentSource
    variable = E_imag
    component = imaginary
    source_real = curr_real
    source_imag = curr_imag
    function_coefficient = omegaMu
    block = source
  []
[]
[BCs]
  [absorbing_left_real]
    type = VectorEMRobinBC
    variable = E_real
    component = real
    beta = beta
    coupled_field = E_imag
    mode = absorbing
    boundary = 'port'
  []
  [absorbing_right_real]
    type = VectorEMRobinBC
    variable = E_real
    component = real
    beta = beta
    coupled_field = E_imag
    mode = absorbing
    boundary = 'exit'
  []
  [absorbing_left_imag]
    type = VectorEMRobinBC
    variable = E_imag
    component = imaginary
    beta = beta
    coupled_field = E_real
    mode = absorbing
    boundary = 'port'
  []
  [absorbing_right_imag]
    type = VectorEMRobinBC
    variable = E_imag
    component = imaginary
    beta = beta
    coupled_field = E_real
    mode = absorbing
    boundary = 'exit'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
[Outputs]
  exodus = true
  file_base = 'evanescent_wave_out'
  print_linear_residuals = true
[]
[Debug]
  show_var_residual_norms = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex-action.i)
mu = 1.0
rho = 1.0
[Mesh]
  [gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  []
[]
[Modules]
  [NavierStokesFV]
    compressibility = 'incompressible'
    density = 'rho'
    dynamic_viscosity = 'mu'
    wall_boundaries = 'top left right bottom'
    momentum_wall_types = 'noslip noslip noslip noslip'
    initial_velocity = 'exact_u exact_v 0'
    initial_pressure = 0
    pin_pressure = true
    pinned_pressure_type = average
    pinned_pressure_value = 0
    momentum_face_interpolation = skewness-corrected
    pressure_face_interpolation = skewness-corrected
    momentum_advection_interpolation = skewness-corrected
    mass_advection_interpolation = skewness-corrected
  []
[]
[FVKernels]
  [u_forcing]
    type = INSFVBodyForce
    variable = vel_x
    functor = forcing_u
    momentum_component = 'x'
    rhie_chow_user_object = 'ins_rhie_chow_interpolator'
  []
  [v_forcing]
    type = INSFVBodyForce
    variable = vel_y
    functor = forcing_v
    momentum_component = 'y'
    rhie_chow_user_object = 'ins_rhie_chow_interpolator'
  []
[]
[FunctorMaterials]
  [const]
    type = ADGenericFunctorMaterial
    prop_names = 'rho mu'
    prop_values = '${rho} ${mu}'
  []
[]
[Functions]
  [exact_u]
    type = ParsedFunction
    expression = 'x^2*(1-x)^2*(2*y-6*y^2+4*y^3)'
  []
  [exact_v]
    type = ParsedFunction
    expression = '-y^2*(1-y)^2*(2*x-6*x^2+4*x^3)'
  []
  [exact_p]
    type = ParsedFunction
    expression = 'x*(1-x)-2/12'
  []
  [forcing_u]
    type = ParsedFunction
    expression = '-4*mu/rho*(-1+2*y)*(y^2-6*x*y^2+6*x^2*y^2-y+6*x*y-6*x^2*y+3*x^2-6*x^3+3*x^4)+1-2*x+4*x^3'
            '*y^2*(2*y^2-2*y+1)*(y-1)^2*(-1+2*x)*(x-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
  [forcing_v]
    type = ParsedFunction
    expression = '4*mu/rho*(-1+2*x)*(x^2-6*y*x^2+6*x^2*y^2-x+6*x*y-6*x*y^2+3*y^2-6*y^3+3*y^4)+4*y^3*x^2*(2'
            '*x^2-2*x+1)*(x-1)^2*(-1+2*y)*(y-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu NONZERO'
  nl_rel_tol = 1e-8
[]
[Outputs]
  [out]
    type = Exodus
    hide = lambda
  []
  csv = true
[]
[Postprocessors]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2u]
    type = ElementL2Error
    variable = vel_x
    function = exact_u
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2v]
    type = ElementL2Error
    variable = vel_y
    function = exact_v
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2p]
    variable = pressure
    function = exact_p
    type = ElementL2Error
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
[]
(modules/solid_mechanics/examples/cframe_iga/cframe_iga.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [igafile]
    type = FileMeshGenerator
    file = cframe_iga_coarse.e
    clear_spline_nodes = true
  []
[]
[Variables]
  [disp_x]
    order = SECOND
    family = RATIONAL_BERNSTEIN
  []
  [disp_y]
    order = SECOND
    family = RATIONAL_BERNSTEIN
  []
  [disp_z]
    order = SECOND
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [SolidMechanics]
#Stress divergence kernels
    displacements = 'disp_x disp_y disp_z'
   []
[]
[AuxVariables]
    [von_mises]
        #Dependent variable used to visualize the von Mises stress
       order = SECOND
       family = MONOMIAL
    []
    [Max_Princ]
       #Dependent variable used to visualize the Hoop stress
       order = SECOND
       family = MONOMIAL
    []
    [stress_xx]
        order = SECOND
        family = MONOMIAL
    []
    [stress_yy]
        order = SECOND
        family = MONOMIAL
    []
    [stress_zz]
        order = SECOND
        family = MONOMIAL
    []
[]
[AuxKernels]
  [von_mises_kernel]
    #Calculates the von mises stress and assigns it to von_mises
    type = RankTwoScalarAux
    variable = von_mises
    rank_two_tensor = stress
    scalar_type = VonMisesStress
  []
  [MaxPrin]
    type = RankTwoScalarAux
    variable = Max_Princ
    rank_two_tensor = stress
    scalar_type = MaxPrincipal
  []
  [stress_xx]
    type = RankTwoAux
    index_i = 0
    index_j = 0
    rank_two_tensor = stress
    variable = stress_xx
  []
    [stress_yy]
    type = RankTwoAux
    index_i = 1
    index_j = 1
    rank_two_tensor = stress
    variable = stress_yy
  []
  [stress_zz]
    type = RankTwoAux
    index_i = 2
    index_j = 2
    rank_two_tensor = stress
    variable = stress_zz
  []
[]
[BCs]
  [Pressure]
    [load]
      #Applies the pressure
      boundary = '3'
      factor = 2000 # psi
    []
  []
  [anchor_x]
    #Anchors the bottom and sides against deformation in the x-direction
    type = DirichletBC
    variable = disp_x
    boundary = '2'
    value = 0.0
  []
  [anchor_y]
    #Anchors the bottom and sides against deformation in the y-direction
    type = DirichletBC
    variable = disp_y
    boundary = '2'
    value = 0.0
  []
  [anchor_z]
    #Anchors the bottom and sides against deformation in the z-direction
    type = DirichletBC
    variable = disp_z
    boundary = '2'
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor_AL]
    #Creates the elasticity tensor using concrete parameters
    youngs_modulus = 24e6 #psi
    poissons_ratio = 0.33
    type = ComputeIsotropicElasticityTensor
  []
  [strain]
    #Computes the strain, assuming small strains
    type = ComputeSmallStrain
    displacements = 'disp_x disp_y disp_z'
  []
  [stress]
    #Computes the stress, using linear elasticity
    type = ComputeLinearElasticStress
  []
  [density_AL]
    #Defines the density of steel
    type = GenericConstantMaterial
    prop_names = density
    prop_values = 6.99e-4 # lbm/in^3
  []
[]
[Preconditioning]
  [SMP]
    #Creates the entire Jacobian, for the Newton solve
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [max_principal_stress]
    type = PointValue
    point = '0.000000 -1.500000 -4.3'
    variable = Max_Princ
    use_displaced_mesh = false
  []
  [maxPrincStress]
    type = ElementExtremeValue
    variable = Max_Princ
  []
[]
[Executioner]
  # We solve a steady state problem using Newton's iteration
  type = Steady
  solve_type = NEWTON
  nl_rel_tol = 1e-9
  l_max_its = 300
  l_tol = 1e-4
  nl_max_its = 30
  petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
  petsc_options_value = 'hypre boomeramg 31'
[]
[Outputs]
  vtk = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [frictionless_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
    use_dual = true
  []
  [tangential_lm]
    block = 'secondary_lower'
    use_dual = true
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    save_in = 'saved_x saved_y'
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '2 3 4 5 6 7'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15                   1e-5'
  line_search = 'none'
  nl_abs_tol = 1e-7
  start_time = 0.0
  end_time = 0.3 # 3.5
  l_tol = 1e-4
  dt = 0.1
  dtmin = 0.001
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3 4'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3 4'
    sort_by = id
  []
  [cont_press]
    type = NodalValueSampler
    variable = frictionless_normal_lm
    boundary = '3'
    sort_by = id
  []
  [friction]
    type = NodalValueSampler
    variable = frictionless_normal_lm
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = false
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp cont_press friction'
    file_base = cylinder_friction_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[UserObjects]
  [weighted_vel_uo]
    type = LMWeightedVelocitiesUserObject
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    lm_variable_normal = frictionless_normal_lm
    lm_variable_tangential_one = tangential_lm
    secondary_variable = disp_x
    disp_x = disp_x
    disp_y = disp_y
  []
[]
[Constraints]
  [weighted_gap_lm]
    type = ComputeFrictionalForceLMMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    variable = frictionless_normal_lm
    disp_x = disp_x
    disp_y = disp_y
    use_displaced_mesh = true
    friction_lm = tangential_lm
    mu = 0.4
    c_t = 1.0e5
    c = 1.0e6
    weighted_gap_uo = weighted_vel_uo
    weighted_velocities_uo = weighted_vel_uo
  []
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = frictionless_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_vel_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = frictionless_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_vel_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    variable = tangential_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    variable = tangential_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_vel_uo
  []
[]
(test/tests/userobjects/mortar_user_object/test.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Problem]
  solve = false
[]
[UserObjects]
  [weighted_gap_uo]
    type = TestWeightedGapUserObject
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    weighted_gap_aux_var = "gap2"
    execute_on = 'linear nonlinear timestep_end'
  []
[]
[AuxVariables]
  [gap]
    block = '10'
  []
  [gap2]
    block = '10'
  []
[]
[AuxKernels]
  [gap]
    type = WeightedGapAux
    variable = gap
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
  []
  [gap2]
    type = GetMortarGapUOValue
    variable = gap2
    boundary = 1
    weighted_gap_uo = weighted_gap_uo
    execute_on = 'linear nonlinear timestep_end'
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
[]
(test/tests/geomsearch/penetration_locator/disconnected_penetration.i)
###########################################################
# This is a test of the Geometric Search System. This test
# uses the penetration location object through the
# PenetrationAux Auxilary Kernel to detect overlaps of
# specified interfaces (boundaries) in the domain.
#
# @Requirement F6.50
###########################################################
[Mesh]
  [connected_mesh]
    type = FileMeshGenerator
    file = 2dcontact_collide.e
  []
  [exploded_mesh]
    type = BreakMeshByElementGenerator
    input = connected_mesh
    subdomains = '1 2'
    interface_name = 'interelement'
  []
[]
[Variables]
  active = 'u'
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./penetration]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./l2]
    type = MassMatrix
    variable = u
    matrix_tags = 'system'
  [../]
[]
[AuxKernels]
  [./penetrate]
    type = PenetrationAux
    variable = penetration
    boundary = 2
    paired_boundary = 3
    search_method = all_proximate_sides
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step10_finite_volume/step10.i)
cp_water_multiplier = 5e-2
mu_multiplier = 1
power = '${fparse 5e4 / 144}'
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'mesh2d_in.e'
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 1e-4
  []
  [vel_y]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 1e-4
  []
  [pressure]
    type = INSFVPressureVariable
    block = 'water'
    initial_condition = 1e5
  []
  [T_fluid]
    type = INSFVEnergyVariable
    initial_condition = 300
    block = 'water'
    scaling = 1e-05
  []
  [lambda]
    type = MooseVariableScalar
    family = SCALAR
    order = FIRST
  []
[]
[AuxVariables]
  # This isn't used in simulation, but useful for visualization
  [vel_z]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 0
  []
  [mixing_length]
    block = 'water'
    order = CONSTANT
    family = MONOMIAL
    fv = true
  []
[]
[GlobalParams]
  velocity_interp_method = rc
  rhie_chow_user_object = ins_rhie_chow_interpolator
  rho = rho
[]
[FVKernels]
  [water_ins_mass_advection]
    type = INSFVMassAdvection
    advected_interp_method = upwind
    block = water
    variable = pressure
  []
  [water_ins_mass_pressure_pin]
    type = FVPointValueConstraint
    lambda = lambda
    phi0 = 1e5
    point = '1 3 0'
    variable = pressure
  []
  [water_ins_momentum_time_vel_x]
    type = INSFVMomentumTimeDerivative
    block = water
    momentum_component = x
    variable = vel_x
  []
  [water_ins_momentum_time_vel_y]
    type = INSFVMomentumTimeDerivative
    block = water
    momentum_component = y
    variable = vel_y
  []
  [water_ins_momentum_advection_x]
    type = INSFVMomentumAdvection
    advected_interp_method = upwind
    block = water
    momentum_component = x
    variable = vel_x
    characteristic_speed = 0.01
  []
  [water_ins_momentum_advection_y]
    type = INSFVMomentumAdvection
    advected_interp_method = upwind
    block = water
    momentum_component = y
    variable = vel_y
    characteristic_speed = 0.1
  []
  [water_ins_momentum_diffusion_x]
    type = INSFVMomentumDiffusion
    block = water
    momentum_component = x
    mu = mu
    variable = vel_x
  []
  [water_ins_momentum_diffusion_y]
    type = INSFVMomentumDiffusion
    block = water
    momentum_component = y
    mu = mu
    variable = vel_y
  []
  [water_ins_momentum_pressure_x]
    type = INSFVMomentumPressure
    block = water
    momentum_component = x
    pressure = pressure
    variable = vel_x
  []
  [water_ins_momentum_pressure_y]
    type = INSFVMomentumPressure
    block = water
    momentum_component = y
    pressure = pressure
    variable = vel_y
  []
  [water_ins_momentum_gravity_z]
    type = INSFVMomentumGravity
    block = water
    gravity = '0 -9.81 0'
    momentum_component = y
    variable = vel_y
  []
  [water_ins_momentum_boussinesq_z]
    type = INSFVMomentumBoussinesq
    T_fluid = T_fluid
    alpha_name = alpha
    block = water
    gravity = '0 -9.81 0'
    momentum_component = y
    ref_temperature = 300
    rho = 955.7
    variable = vel_y
  []
  # Energy conservation equation
  [water_ins_energy_time]
    type = INSFVEnergyTimeDerivative
    block = water
    dh_dt = dh_dt
    rho = rho
    variable = T_fluid
  []
  [water_ins_energy_advection]
    type = INSFVEnergyAdvection
    advected_interp_method = upwind
    block = water
    variable = T_fluid
  []
  [water_ins_energy_diffusion_all]
    type = FVDiffusion
    block = water
    coeff = k
    variable = T_fluid
  []
  # Turbulence
  [water_ins_viscosity_rans_x]
    type = INSFVMixingLengthReynoldsStress
    variable = vel_x
    mixing_length = mixing_length
    momentum_component = 'x'
    u = vel_x
    v = vel_y
  []
  [water_ins_viscosity_rans_y]
    type = INSFVMixingLengthReynoldsStress
    variable = vel_y
    mixing_length = mixing_length
    momentum_component = 'y'
    u = vel_x
    v = vel_y
  []
  [water_ins_energy_rans]
    type = WCNSFVMixingLengthEnergyDiffusion
    variable = T_fluid
    cp = cp
    mixing_length = mixing_length
    schmidt_number = 1
    u = vel_x
    v = vel_y
  []
[]
[AuxKernels]
  [mixing_length]
    type = WallDistanceMixingLengthAux
    variable = mixing_length
    walls = 'water_boundary inner_cavity_water'
    execute_on = 'initial'
  []
[]
[FunctorMaterials]
  [water]
    type = ADGenericFunctorMaterial
    block = 'water'
    prop_names = 'rho    k     cp      mu alpha_wall'
    prop_values = '955.7 0.6 ${fparse cp_water_multiplier * 4181} ${fparse 7.98e-4 * mu_multiplier} 30'
  []
  [boussinesq_params]
    type = ADGenericFunctorMaterial
    prop_names = 'alpha '
    prop_values = '2.9e-3'
  []
  [water_ins_enthalpy_material]
    type = INSFVEnthalpyFunctorMaterial
    block = water
    cp = cp
    execute_on = ALWAYS
    outputs = none
    temperature = T_fluid
  []
  [total_viscosity]
    type = MixingLengthTurbulentViscosityFunctorMaterial
    u = 'vel_x'
    v = 'vel_y'
    mixing_length = mixing_length
    mu = mu
  []
[]
[FVBCs]
  [vel_x_water_boundary]
    type = INSFVNoSlipWallBC
    boundary = 'water_boundary inner_cavity_water'
    function = 0
    variable = vel_x
  []
  [vel_y_water_boundary]
    type = INSFVNoSlipWallBC
    boundary = 'water_boundary inner_cavity_water'
    function = 0
    variable = vel_y
  []
  [T_fluid_inner_cavity]
    type = FVFunctorNeumannBC
    boundary = inner_cavity_water
    functor = ${power}
    variable = T_fluid
  []
  [T_fluid_water_boundary]
    type = FVFunctorConvectiveHeatFluxBC
    boundary = water_boundary
    variable = T_fluid
    T_bulk = T_fluid
    T_solid = 300
    heat_transfer_coefficient = 600
    is_solid = false
  []
[]
[UserObjects]
  [ins_rhie_chow_interpolator]
    type = INSFVRhieChowInterpolator
    pressure = 'pressure'
    u = 'vel_x'
    v = 'vel_y'
    block = 'water'
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  automatic_scaling = true
  off_diagonals_in_auto_scaling = true
  line_search = none
  # Direct solve works for everything small enough
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu NONZERO superlu_dist'
  nl_abs_tol = 1e-8
  nl_max_its = 10
  l_max_its = 3
  steady_state_tolerance = 1e-12
  steady_state_detection = true
  normalize_solution_diff_norm_by_dt = false
  start_time = -1
  dtmax = 100
  [TimeStepper]
    type = FunctionDT
    function = 'if(t < 1, 0.1, t / 10)'
  []
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm.i)
# Test for displacement of pinched cylinder
# Ref: Figure 10 and Table 6 from Dvorkin and Bathe, Eng. Comput., Vol. 1, 1984.
# A cylinder of radius 1 m and length 2 m (along Z axis) with clamped ends
# (at z = 0 and 2 m) is pinched at mid-length by placing point loads of 10 N
# at (1, 0, 1) and (-1, 0, 1). Due to the symmetry of the problem, only 1/8th
# of the cylinder needs to be modeled.
# The normalized series solution for the displacement at the loading point is
# w = Wc E t / P = 164.24; where Wc is the displacement in m, E is the Young's
# modulus, t is the thickness and P is the point load.
# For this problem, E = 1e6 Pa, L = 2 m, R = 1 m, t = 0.01 m, P = 10 N and
# Poisson's ratio = 0.3. This gives an analytic displacement of 0.16424 m.
# FEM results from different mesh discretizations are presented below. Only
# the 10x10 mesh is included as a test.
# As shown in the table below, the results from the MOOSE FEM analysis converge
# to the analytic solution and the convergence matches well with the results
# of Dvorkin and Bathe (1984).
# Mesh of 1/8 cylinder |  FEM/analytical disp    | FEM/analytical disp
#                      |  (MOOSE implementation) | (Reported by Dvorkin)
#----------------------|-------------------------|-------------------------
#     10 x 10          |          0.82           |        0.83
#     20 x 20          |          0.95           |        0.96
#     40 x 40          |          0.99           |         -
#     80 x 80          |          1.01           |         -
[Mesh]
  [mesh]
    type = FileMeshGenerator
    file = cyl_sym_10x10.e
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'CD AD'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'CD BC'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'AB'
    value = 0.0
  []
  # Note that the rotational DOFs are in the local coordinate system
  # Also it isn't clear from the Dvorkin paper which DOFs should be fixed on the far
  # end (boundary CD). If it were fully constrained we would need to fix disp_z and
  # the rotations, but that makes it stiffer than the analytical solution.
  [simply_support_rot_x]
    type = DirichletBC
    variable = rot_x
    boundary = 'AB'
    value = 0.0
  []
  [simply_support_rot_y]
    type = DirichletBC
    variable = rot_y
    boundary = 'AD BC'
    value = 0.0
  []
[]
[DiracKernels]
  [point]
    type = ConstantPointSource
    variable = disp_x
    point = '1 0 1'
    value = -2.5 # P = 10
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-8
  dt = 1.0
  dtmin = 1.0
  end_time = 1.0
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    block = '100'
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 1e6
    poissons_ratio = 0.3
    block = '100'
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    block = '100'
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.01
    through_thickness_order = SECOND
  []
  [stress]
    type = ADComputeShellStress
    block = '100'
    through_thickness_order = SECOND
  []
[]
[Postprocessors]
  [disp_x1]
    type = PointValue
    point = '1 0 1'
    variable = disp_x
  []
  [disp_y1]
    type = PointValue
    point = '1 0 1'
    variable = disp_y
  []
  [disp_x2]
    type = PointValue
    point = '0 1 1'
    variable = disp_x
  []
  [disp_y2]
    type = PointValue
    point = '0 1 1'
    variable = disp_y
  []
[]
[Outputs]
  exodus = true
  csv = 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/solid_mechanics/test/tests/shell/static/plate_concentrated_loads.i)
# A simply supported plate with a length of 9m and width of 1m is loaded by two equal concentrated loads (F=10000 N/m)
# The concentrated loads are symmetrically applied at x=3 and x=6
# Analytical solution: maximum diplacement at the center= 6.469e-3
# Numerical model: maximum diplacement at the center=6.436e-3
# Analytical solution: maximum bending moment (m22) at the center =30000
# Numerical model: maximum bending moment (m22) at the center =30000
# Analytical solution: out of plane shear force (q13) for 0<x<3 =10000
# Numerical model: out of plane shear force (q13) for 0<x<3 =10000
# Analytical solution: out of plane shear force (q13) for 3<x<6 =0
# Numerical model: out of plane shear force (q13) at for 3<x<6 =0
# Analytical solution: out of plane shear force (q13) for 6<x<9 =-10000
# Numerical model: out of plane shear force (q13) for 6<x<9 =-10000
[Mesh]
  [gmg]
    type = FileMeshGenerator
    file = Plate_Concentrated_Loads.msh
  []
  [p1]
    type = BoundingBoxNodeSetGenerator
    input = gmg
    bottom_left = '2.99 0.0 -0.1'
    top_right = '3.1 0.0 1.1'
    new_boundary = 100
  []
  [p2]
    type = BoundingBoxNodeSetGenerator
    input = p1
    bottom_left = '5.99 0.0 -0.1'
    top_right = '6.1 0.0 1.1'
    new_boundary = 101
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'right left'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'right left'
    value = 0.0
  []
[]
[NodalKernels]
  [force_p1]
    type = ConstantRate
    variable = disp_y
    boundary = 100
    rate = -2500 # applied to the four nodes at x=3
  []
  [force_p2]
    type = ConstantRate
    variable = disp_y
    boundary = 101
    rate = -2500 # applied to the four nodes at x=6
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  dt = 1
  dtmin = 1
  end_time = 1.
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 200e9
    poissons_ratio = 0.0
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.133887
    through_thickness_order = SECOND
  []
  [stress]
    type = ADComputeShellStress
    through_thickness_order = SECOND
  []
[]
[AuxVariables]
  [moment_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [shear_13]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [moment_22]
    type = ShellResultantsAux
    variable = moment_22
    stress_resultant = bending_moment_1
    thickness = 0.133887
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [shear_13]
    type = ShellResultantsAux
    variable = shear_13
    stress_resultant = shear_force_02
    thickness = 0.133887
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [first_axis_x]
    type = ShellLocalCoordinatesAux
    variable = first_axis_x
    property = first_local_vector
    component = 0
  []
  [first_axis_y]
    type = ShellLocalCoordinatesAux
    variable = first_axis_y
    property = first_local_vector
    component = 1
  []
  [first_axis_z]
    type = ShellLocalCoordinatesAux
    variable = first_axis_z
    property = first_local_vector
    component = 2
  []
  [second_axis_x]
    type = ShellLocalCoordinatesAux
    variable = second_axis_x
    property = second_local_vector
    component = 0
  []
  [second_axis_y]
    type = ShellLocalCoordinatesAux
    variable = second_axis_y
    property = second_local_vector
    component = 1
  []
  [second_axis_z]
    type = ShellLocalCoordinatesAux
    variable = second_axis_z
    property = second_local_vector
    component = 2
  []
  [normal_axis_x]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_x
    property = normal_local_vector
    component = 0
  []
  [normal_axis_y]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_y
    property = normal_local_vector
    component = 1
  []
  [normal_axis_z]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_z
    property = normal_local_vector
    component = 2
  []
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty_al.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = iron.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '10'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '20'
    new_block_name = 'primary_lower'
    input = secondary
  []
  patch_update_strategy = auto
  patch_size = 20
  allow_renumbering = false
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [penalty_normal_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [penalty_frictional_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [accumulated_slip_one]
    order = FIRST
    family = LAGRANGE
  []
  [tangential_vel_one]
    order = FIRST
    family = LAGRANGE
  []
  [real_weighted_gap]
    order = FIRST
    family = LAGRANGE
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
  [von_mises]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 2. 8.'
    y = '0. -1.0 -1.0'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 8.'
    y = '0. 8.'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    save_in = 'saved_x saved_y'
    block = '1 2'
    strain = FINITE
  []
[]
[AuxKernels]
  [penalty_normal_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
  []
  [penalty_frictional_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
  []
  [penalty_accumulated_slip_auxk]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
  []
  [penalty_tangential_vel_auxk]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
  []
  [real_weighted_gap_auxk]
    type = MortarUserObjectAux
    variable = real_weighted_gap
    user_object = friction_uo
    contact_quantity = normal_gap
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [von_mises_kernel]
    #Calculates the von mises stress and assigns it to von_mises
    type = RankTwoScalarAux
    variable = von_mises
    rank_two_tensor = stress
    execute_on = timestep_end
    scalar_type = VonMisesStress
    block = '1 2'
  []
[]
# [VectorPostprocessors]
#   [penalty_normal_pressure]
#     type = NodalValueSampler
#     variable = penalty_normal_pressure
#     boundary = 10
#     sort_by = id
#   []
# []
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
  [force_x]
    type = NodalSum
    boundary = 30
    variable = saved_x
  []
  [force_y]
    type = NodalSum
    boundary = 30
    variable = saved_y
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = real_weighted_gap
    boundary = 10
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
[]
[BCs]
  [bot_x_disp]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
    preset = false
  []
  [bot_y_disp]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
    preset = false
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = disp_ramp_vert
    preset = false
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = '30'
    function = disp_ramp_horz
    preset = false
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 6896
    poissons_ratio = 0.32
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '2'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 689.6
    poissons_ratio = 0.32
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
  petsc_options_value = 'lu     superlu_dist'
  line_search = 'none'
  nl_abs_tol = 1e-7
  nl_rel_tol = 1e-7
  l_tol = 1e-6
  l_max_its = 7
  nl_max_its = 300
  start_time = 0.0
  end_time = 6.5
  dt = 0.0125
  dtmin = 1e-5
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = true
  # [chkfile]
  #   type = CSV
  #   start_time = 0.0
  #   execute_vector_postprocessors_on = FINAL
  # []
  [console]
    type = Console
    max_rows = 5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    disp_x = disp_x
    disp_y = disp_y
    friction_coefficient = 0.4 # with 2.0 works
    secondary_variable = disp_x
    penalty = 5e5
    penalty_friction = 1e4
    slip_tolerance = 1e-05
    penetration_tolerance = 1e-03
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [t_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [t_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_element_extra_integer_swap.i)
[Problem]
  solve = false
[]
[Mesh]
  # See fancy_extruder_with_boundary_swap.i for details about mesh_2d.e
  [fmg]
    type = FileMeshGenerator
    file = mesh_2d.e
    exodus_extra_element_integers = 'element_extra_integer_1 element_extra_integer_2'
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = fmg
    heights = '1 2 3'
    num_layers = '1 2 3'
    direction = '0 0 1'
    elem_integer_names_to_swap = 'element_extra_integer_1 element_extra_integer_2'
    elem_integers_swaps = '1 4 2 8;
                           2 7;
                           1 6 |
                           1 8 2 4;
                           2 5;
                           1 6'
  []
[]
[AuxVariables]
  [element_extra_integer_1]
    family = MONOMIAL
    order = CONSTANT
  []
  [element_extra_integer_2]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [element_extra_integer_1]
    type = ExtraElementIDAux
    variable = element_extra_integer_1
    extra_id_name = element_extra_integer_1
    execute_on = 'initial'
  []
  [element_extra_integer_2]
    type = ExtraElementIDAux
    variable = element_extra_integer_2
    extra_id_name = element_extra_integer_2
    execute_on = 'initial'
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
  execute_on = final
[]
(modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_unstructured.i)
# Test for displacement of pinched cylinder (similar to pinch_cyl_symm.i)
# This variant of the test is run with an unstructured mesh
[Mesh]
  [mesh]
    type = FileMeshGenerator
    file = pinched_cyl_10_10_unstructured.msh
  []
  [block_100]
    type = ParsedSubdomainMeshGenerator
    input = mesh
    combinatorial_geometry = 'x > -1.1 & x < 1.1 & y > -1.1 & y < 1.1 & z > -0.1 & z < 2.1'
    block_id = 100
  []
  [nodeset_1]
    type = BoundingBoxNodeSetGenerator
    input = block_100
    top_right = '1.1 1.1 0'
    bottom_left = '-1.1 -1.1 0'
    new_boundary = 'CD' #CD
  []
  [nodeset_2]
    type = BoundingBoxNodeSetGenerator
    input = nodeset_1
    top_right = '1.1 1.1 1.0'
    bottom_left = '-1.1 -1.1 1.0'
    new_boundary = 'AB' #AB
  []
  [nodeset_3]
    type = BoundingBoxNodeSetGenerator
    input = nodeset_2
    top_right = '0.02 1.1 1.0'
    bottom_left = '-0.1 0.98 0.0'
    new_boundary = 'AD' #AD
  []
  [nodeset_4]
    type = BoundingBoxNodeSetGenerator
    input = nodeset_3
    top_right = '1.1 0.02 1.0'
    bottom_left = '0.98 -0.1 0.0'
    new_boundary = 'BC' #BC
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[AuxVariables]
  [stress_xx0]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx1]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx0]
    type = RankTwoAux
    variable = stress_xx0
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_xx1]
    type = RankTwoAux
    variable = stress_xx1
    rank_two_tensor = global_stress_t_points_1
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'CD AD'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'CD BC'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'AB'
    value = 0.0
  []
  [simply_support_rot_x]
    type = DirichletBC
    variable = rot_x
    boundary = 'AD BC'
    value = 0.0
  []
  [simply_support_rot_y]
    type = DirichletBC
    variable = rot_y
    boundary = 'AB'
    value = 0.0
  []
[]
[DiracKernels]
  [point1]
    type = ConstantPointSource
    variable = disp_x
    point = '1 0 1'
    value = -2.5 # P = 10
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-8
  dt = 1.0
  dtmin = 1.0
  end_time = 1.0
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    block = '100'
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 1e6
    poissons_ratio = 0.3
    block = '100'
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    block = '100'
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.01
    through_thickness_order = SECOND
    reference_first_local_direction = '0 0 1'
  []
  [stress]
    type = ADComputeShellStress
    block = '100'
    through_thickness_order = SECOND
  []
[]
[Postprocessors]
  [disp_z2]
    type = PointValue
    point = '1 0 1'
    variable = disp_x
  []
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/umat/multiple_blocks/rve_multimaterial.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  volumetric_locking_correction = true
[]
[Mesh]
  [mesh_1]
    type = FileMeshGenerator
    file = rve.e
  []
[]
[Functions]
  [top_shear]
    type = ParsedFunction
    expression = t/0.05
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = disp_x
    boundary = '1000'
    value = 0
  []
  [fix_y]
    type = DirichletBC
    variable = disp_y
    boundary = '1000'
    value = 0
  []
  [fix_z]
    type = DirichletBC
    variable = disp_z
    boundary = '1000'
    value = 0
  []
  [slip_x]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '4000'
    function = top_shear
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    generate_output = 'stress_yy'
    incremental = true
  []
[]
[Materials]
  [umat_1]
    type = AbaqusUMATStress
    # Young's modulus,  Poisson's Ratio, Yield, Hardening
    constant_properties = '1000 0.3'
    plugin = ../../../plugins/elastic_incremental
    num_state_vars = 3
    use_one_based_indexing = true
    block = '1'
  []
  [umat_2]
    type = AbaqusUMATStress
    # Young's modulus,  Poisson's Ratio
    constant_properties = '1e8 0.3'
    plugin = ../../../plugins/elastic_incremental
    num_state_vars = 3
    use_one_based_indexing = true
    block = '2'
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
  []
  [elastic_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1e8
    poissons_ratio = 0.3
    block = '2'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 0.05
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu superlu_dist'
  line_search = none
  nl_abs_tol = 1e-10
  dtmax = 10.0
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 0.05
  num_steps = 2
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_PINSFV.i)
mu=1
rho=1
advected_interp_method='average'
velocity_interp_method='rc'
[Mesh]
  inactive = 'mesh internal_boundary_bot internal_boundary_top'
  [mesh]
    type = CartesianMeshGenerator
    dim = 2
    dx = '1'
    dy = '1 1 1'
    ix = '5'
    iy = '5 5 5'
    subdomain_id = '1
                    2
                    3'
  []
  [internal_boundary_bot]
    type = SideSetsBetweenSubdomainsGenerator
    input = mesh
    new_boundary = 'internal_bot'
    primary_block = 1
    paired_block = 2
  []
  [internal_boundary_top]
    type = SideSetsBetweenSubdomainsGenerator
    input = internal_boundary_bot
    new_boundary = 'internal_top'
    primary_block = 2
    paired_block = 3
  []
  [diverging_mesh]
    type = FileMeshGenerator
    file = 'expansion_quad.e'
  []
[]
[Problem]
  fv_bcs_integrity_check = true
[]
[GlobalParams]
  rhie_chow_user_object = 'rc'
  advected_interp_method = ${advected_interp_method}
  velocity_interp_method = ${velocity_interp_method}
[]
[UserObjects]
  [rc]
    type = PINSFVRhieChowInterpolator
    u = u
    v = v
    pressure = pressure
    porosity = porosity
  []
[]
[Variables]
  [u]
    type = PINSFVSuperficialVelocityVariable
    initial_condition = 0
  []
  [v]
    type = PINSFVSuperficialVelocityVariable
    initial_condition = 1
  []
  [pressure]
    type = INSFVPressureVariable
  []
  [temperature]
    type = INSFVEnergyVariable
  []
[]
[AuxVariables]
  [advected_density]
    order = CONSTANT
    family = MONOMIAL
    fv = true
    initial_condition = ${rho}
  []
  [porosity]
    order = CONSTANT
    family = MONOMIAL
    fv = true
    initial_condition = 0.5
  []
[]
[FVKernels]
  [mass]
    type = PINSFVMassAdvection
    variable = pressure
    rho = ${rho}
  []
  [u_advection]
    type = PINSFVMomentumAdvection
    variable = u
    rho = ${rho}
    porosity = porosity
    momentum_component = 'x'
  []
  [u_viscosity]
    type = PINSFVMomentumDiffusion
    variable = u
    force_boundary_execution = true
    porosity = porosity
    mu = ${mu}
    momentum_component = 'x'
  []
  [u_pressure]
    type = PINSFVMomentumPressure
    variable = u
    momentum_component = 'x'
    pressure = pressure
    porosity = porosity
  []
  [v_advection]
    type = PINSFVMomentumAdvection
    variable = v
    rho = ${rho}
    porosity = porosity
    momentum_component = 'y'
  []
  [v_viscosity]
    type = PINSFVMomentumDiffusion
    variable = v
    force_boundary_execution = true
    porosity = porosity
    mu = ${mu}
    momentum_component = 'y'
  []
  [v_pressure]
    type = PINSFVMomentumPressure
    variable = v
    momentum_component = 'y'
    pressure = pressure
    porosity = porosity
  []
  [temp_advection]
    type = PINSFVEnergyAdvection
    variable = temperature
    advected_interp_method = 'upwind'
  []
  [temp_source]
    type = FVBodyForce
    variable = temperature
    function = 10
    block = 1
  []
[]
[FVBCs]
  inactive = 'noslip-u noslip-v'
  [inlet-u]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = u
    functor = 0
  []
  [inlet-v]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = v
    functor = 1
  []
  [noslip-u]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = u
    function = 0
  []
  [noslip-v]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = v
    function = 0
  []
  [free-slip-u]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = u
    momentum_component = 'x'
  []
  [free-slip-v]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = v
    momentum_component = 'y'
  []
  [axis-u]
    type = PINSFVSymmetryVelocityBC
    boundary = 'left'
    variable = u
    u = u
    v = v
    mu = ${mu}
    momentum_component = x
  []
  [axis-v]
    type = PINSFVSymmetryVelocityBC
    boundary = 'left'
    variable = v
    u = u
    v = v
    mu = ${mu}
    momentum_component = y
  []
  [axis-p]
    type = INSFVSymmetryPressureBC
    boundary = 'left'
    variable = pressure
  []
  [outlet_p]
    type = INSFVOutletPressureBC
    boundary = 'top'
    variable = pressure
    function = 0
  []
  [inlet_temp]
    type = FVNeumannBC
    boundary = 'bottom'
    variable = temperature
    value = 300
  []
[]
[FunctorMaterials]
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial
    temperature = 'temperature'
    rho = ${rho}
  []
  [advected_material_property]
    type = ADGenericFunctorMaterial
    prop_names = 'advected_rho cp'
    prop_values ='${rho} 1'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -sub_pc_factor_shift_type'
  petsc_options_value = 'asm      200                lu           NONZERO'
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Postprocessors]
  [inlet_mass_variable]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = advected_density
  []
  [inlet_mass_constant]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [inlet_mass_matprop]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = 'advected_rho'
  []
  [mid1_mass]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [mid2_mass]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [outlet_mass]
    type = VolumetricFlowRate
    boundary = top
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [inlet_momentum_x]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = u
  []
  [inlet_momentum_y]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = v
  []
  [mid1_advected_energy]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
  [mid2_advected_energy]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
  [outlet_advected_energy]
    type = VolumetricFlowRate
    boundary = top
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
[]
[Outputs]
  csv = true
[]
(test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-material.i)
[Mesh]
  displacements = 'disp_x disp_y'
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
    # block 1: left
    # block 2: right
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[AuxVariables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[AuxKernels]
  [function_x]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_x'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
  [function_y]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_y'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
[]
[Problem]
  kernel_coverage_check = false
  use_hash_table_matrix_assembly = true
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = '10'
    family = LAGRANGE
    order = FIRST
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = T
    boundary = '5'
    value = 0
  []
  [right]
    type = DirichletBC
    variable = T
    boundary = '8'
    value = 1
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = GapHeatConductanceMaterial
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
    use_displaced_mesh = true
    material_property = 'layer_modifier'
    correct_edge_dropping = true
  []
[]
[Materials]
  [constant]
    type = ADGenericConstantMaterial
    prop_names = 'gap_conductance'
    prop_values = '.03'
    block = '1 2'
    use_displaced_mesh = true
  []
  [bnd_material_modifier]
    type = ADGenericConstantMaterial
    prop_names = 'layer_modifier'
    prop_values = '5.0'
    boundary = '1 2'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Transient
  num_steps = 5
  petsc_options_iname = '-pc_type -snes_linesearch_type'
  petsc_options_value = 'lu       basic'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity-vcp.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
    order = FIRST
  []
  [lambda]
    block = '10'
    order = FIRST
    use_dual = true
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Preconditioning]
  [vcp]
    type = VCP
    full = true
    lm_variable = 'lambda'
    primary_variable = 'T'
    preconditioner = 'AMG'
    is_lm_coupling_diagonal = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
[]
[Outputs]
  file_base = 'dual-soln-continuity_out'
  exodus = true
[]
(test/tests/restart/receiver/receiver_restart.i)
[Mesh/file]
  type = FileMeshGenerator
  file = receiver_initial_out_cp/0001-mesh.cpa.gz
[]
[Postprocessors/constant]
  type = Receiver
[]
[Problem]
  solve = false
  restart_file_base = receiver_initial_out_cp/0001
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/jeffery-hamel/wedge_dirichlet_fv.i)
mu=1
rho=1
# This input file tests whether we can converge to the semi-analytical
# solution for flow in a 2D wedge.
[GlobalParams]
  velocity_interp_method = 'rc'
  advected_interp_method = 'average'
  rhie_chow_user_object = 'rc'
  alpha_degrees = 15
  Re = 30
  K = -9.78221333616
  f = f_theta
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = wedge_8x12.e
  []
[]
[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolator
    u = vel_x
    v = vel_y
    pressure = pressure
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
  []
  [vel_y]
    type = INSFVVelocityVariable
  []
  [pressure]
    type = INSFVPressureVariable
  []
  [lambda]
    family = SCALAR
    order = FIRST
  []
[]
[FVKernels]
  [mass]
    type = INSFVMassAdvection
    variable = pressure
    rho = ${rho}
  []
  [mean_zero_pressure]
    type = FVIntegralValueConstraint
    variable = pressure
    lambda = lambda
    phi0 = 0.0
  []
  [u_advection]
    type = INSFVMomentumAdvection
    variable = vel_x
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_x
    mu = 'mu'
    momentum_component = 'x'
  []
  [u_pressure]
    type = INSFVMomentumPressure
    variable = vel_x
    momentum_component = 'x'
    pressure = pressure
  []
  [v_advection]
    type = INSFVMomentumAdvection
    variable = vel_y
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_y
    mu = mu
    momentum_component = y
  []
  [v_pressure]
    type = INSFVMomentumPressure
    variable = vel_y
    momentum_component = y
    pressure = pressure
  []
[]
[FVBCs]
  [no_slip_x]
    type = INSFVNoSlipWallBC
    variable = vel_x
    boundary = 'top_wall bottom_wall'
    function = 0
  []
  [no_slip_y]
    type = INSFVNoSlipWallBC
    variable = vel_y
    boundary = 'top_wall bottom_wall'
    function = 0
  []
  [inlet_x]
    type = INSFVInletVelocityBC
    variable = vel_x
    boundary = 'inlet outlet'
    functor = vel_x_exact
  []
  [inlet_y]
    type = INSFVInletVelocityBC
    variable = vel_y
    boundary = 'inlet outlet'
    functor = vel_y_exact
  []
[]
[Functions]
  [f_theta]
    # Non-dimensional solution values f(eta), 0 <= eta <= 1 for
    # alpha=15 deg, Re=30.  Note: this introduces an input file
    # ordering dependency: this Function must appear *before* the two
    # functions below which use it since apparently proper dependency
    # resolution is not done in this scenario.
    type = PiecewiseLinear
    data_file = 'f.csv'
    format = 'columns'
  []
  [vel_x_exact]
    type = WedgeFunction
    var_num = 0
    mu = 1
    rho = 1
  []
  [vel_y_exact]
    type = WedgeFunction
    var_num = 1
    mu = 1
    rho = 1
  []
[]
[FunctorMaterials]
  [mu]
    type = ADGenericFunctorMaterial
    prop_names = 'mu'
    prop_values = '${mu}'
  []
[]
[Preconditioning]
  [SMP_NEWTON]
    type = SMP
    solve_type = NEWTON
  []
[]
[Executioner]
  type = Transient
  dt = 1.e-2
  dtmin = 1.e-2
  num_steps = 5
  petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
  petsc_options_value = '300                bjacobi  ilu          4'
  line_search = none
  nl_rel_tol = 1e-13
  nl_abs_tol = 1e-11
  nl_max_its = 10
  l_tol = 1e-6
  l_max_its = 300
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/3d.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = false
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = SIXTH
  []
[]
[AuxVariables]
  [sxx]
    family = MONOMIAL
    order = CONSTANT
  []
  [syy]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxy]
    family = MONOMIAL
    order = CONSTANT
  []
  [szz]
    family = MONOMIAL
    order = CONSTANT
  []
  [syz]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exx]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyy]
    family = MONOMIAL
    order = CONSTANT
  []
  [exy]
    family = MONOMIAL
    order = CONSTANT
  []
  [ezz]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exz]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [sxx]
    type = RankTwoAux
    variable = sxx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [syy]
    type = RankTwoAux
    variable = syy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [sxy]
    type = RankTwoAux
    variable = sxy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [zz]
    type = RankTwoAux
    variable = szz
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [syz]
    type = RankTwoAux
    variable = syz
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [sxz]
    type = RankTwoAux
    variable = sxz
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [exx]
    type = RankTwoAux
    variable = exx
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 0
  []
  [eyy]
    type = RankTwoAux
    variable = eyy
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 1
  []
  [exy]
    type = RankTwoAux
    variable = exy
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 1
  []
  [ezz]
    type = RankTwoAux
    variable = ezz
    rank_two_tensor = mechanical_strain
    index_i = 2
    index_j = 2
  []
  [eyz]
    type = RankTwoAux
    variable = eyz
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 2
  []
  [exz]
    type = RankTwoAux
    variable = exz
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '4.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-2*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress33]
    type = ParsedFunction
    expression = '8.0e2*t'
  []
  [stress23]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress13]
    type = ParsedFunction
    expression = '-7.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [sxx]
    type = ElementAverageValue
    variable = sxx
    execute_on = 'initial timestep_end'
  []
  [syy]
    type = ElementAverageValue
    variable = syy
    execute_on = 'initial timestep_end'
  []
  [sxy]
    type = ElementAverageValue
    variable = sxy
    execute_on = 'initial timestep_end'
  []
  [szz]
    type = ElementAverageValue
    variable = szz
    execute_on = 'initial timestep_end'
  []
  [syz]
    type = ElementAverageValue
    variable = syz
    execute_on = 'initial timestep_end'
  []
  [sxz]
    type = ElementAverageValue
    variable = sxz
    execute_on = 'initial timestep_end'
  []
  [exx]
    type = ElementAverageValue
    variable = exx
    execute_on = 'initial timestep_end'
  []
  [eyy]
    type = ElementAverageValue
    variable = eyy
    execute_on = 'initial timestep_end'
  []
  [exy]
    type = ElementAverageValue
    variable = exy
    execute_on = 'initial timestep_end'
  []
  [ezz]
    type = ElementAverageValue
    variable = ezz
    execute_on = 'initial timestep_end'
  []
  [eyz]
    type = ElementAverageValue
    variable = eyz
    execute_on = 'initial timestep_end'
  []
  [exz]
    type = ElementAverageValue
    variable = exz
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  csv = true
[]
(modules/peridynamics/test/tests/mesh/2D_convert_one_retain.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = true
    blocks_to_pd = 2
    #blocks_as_fe = 1
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp_symm.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = one_duct_symm.e
  []
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[AuxVariables]
  [temp]
    initial_condition = 300
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1'
    eigenstrain_names = 'thermal_expansion'
  []
[]
[BCs]
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '16'
    value = 0.0
  []
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '16'
    value = 0.0
  []
  [fix_z]
    type = DirichletBC
    variable = 'disp_z'
    boundary = '16'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '4'
      function = pressure
      factor = 80
    []
  []
  [InclinedNoDisplacementBC]
    [inclined_symm]
      boundary = 5
      penalty = 1e10
    []
  []
[]
[VectorPostprocessors]
  [section_output]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '0 0 0'
    symmetry_plane = '0.5 0.8660254037844 0'
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    temperature = temp
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0
    eigenstrain_name = 'thermal_expansion'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 0.5
[]
[Outputs]
  exodus = true
  csv = true
[]
(modules/contact/test/tests/fieldsplit/frictionless_mortar_FS.i)
offset = 0.021
vy = 0.15
vx = 0.04
refine = 1
[GlobalParams]
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [original_file_mesh]
    type = FileMeshGenerator
    file = long_short_blocks.e
  []
  uniform_refine = ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    incremental = true
    add_variables = true
    block = '1 2'
    use_automatic_differentiation = true
  []
[]
[Functions]
  [horizontal_movement]
    type = ParsedFunction
    value = 'if(t<0.5,${vx}*t-${offset},${vx}-${offset})'
  []
  [vertical_movement]
    type = ParsedFunction
    value = 'if(t<0.5,${offset},${vy}*(t-0.5)+${offset})'
  []
[]
[BCs]
  [push_left_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = horizontal_movement
    preset = false
  []
  [fix_right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [fix_right_y]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  []
  [push_left_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = vertical_movement
    preset = false
  []
[]
[Materials]
  [elasticity_tensor_left]
    type = ADComputeIsotropicElasticityTensor
    block = 1
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  []
  [stress_left]
    type = ADComputeFiniteStrainElasticStress
    block = 1
  []
  [elasticity_tensor_right]
    type = ADComputeIsotropicElasticityTensor
    block = 2
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  []
  [stress_right]
    type = ADComputeFiniteStrainElasticStress
    block = 2
  []
[]
[Contact]
  [leftright]
    secondary = 10
    primary = 20
    model = frictionless
    formulation = mortar
    c_normal = 1e6
  []
[]
[ICs]
  [disp_y]
    block = 1
    variable = disp_y
    value = ${offset}
    type = ConstantIC
  []
  [disp_x]
    block = 1
    variable = disp_x
    value = -${offset}
    type = ConstantIC
  []
[]
[Preconditioning]
  [FSP]
    type = FSP
    topsplit = 'contact_interior'
    [contact_interior]
      splitting = 'interior contact'
      splitting_type = schur
      petsc_options = '-snes_ksp_ew'
      petsc_options_iname = '-ksp_gmres_restart -pc_fieldsplit_schur_fact_type -mat_mffd_err'
      petsc_options_value = '200                full                           1e-5'
      schur_pre = 'S'
    []
    [interior]
      vars = 'disp_x disp_y'
      petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type '
      petsc_options_value = 'gmres   hypre  boomeramg'
    []
    [contact]
      vars = 'leftright_normal_lm'
    []
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  dt = 0.1
  end_time = 1
  abort_on_solve_fail = true
  l_max_its = 200
  nl_abs_tol = 1e-8
  line_search = 'none'
  nl_max_its = 20
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [lin]
    type = NumLinearIterations
    outputs = 'console'
  []
  [cum]
    type = CumulativeValuePostprocessor
    postprocessor = 'lin'
    outputs = 'console'
  []
[]
(modules/solid_mechanics/test/tests/shell/static/qp_count_error.i)
# Test for the stress and strain output for tapered shell elements.
# A tapered beam is represented with shell elements in XY plane
# having Young's Modulus of 210000 and poissons ratio of 0.3.
# The displacement in X direction is constrained in the left end and the
# displacement of center node of the left end is constrained in Y direction.
# Previous case: A uniform pressure of 50 units is applied at the right end.
# The shell element strain calculation assumes four quadrature points.
# So, when a pressure is applied at the edge, two quadrature points
# are used in the strain calulator and an error is generated.
# Change to the test: using a PressureBC does not cause material property evaluations
# anymore. So a MatNeumannBC is used instead
[Mesh]
  [input]
    type = FileMeshGenerator
    file = taperedmesh.e
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [rot_x]
  []
  [rot_y]
  []
[]
[AuxVariables]
  [stress_00]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_01]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_10]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_02]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_20]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_21]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_00]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_01]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_10]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_02]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_20]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_21]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    block = 1
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    block = 1
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    block = 1
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    block = 1
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    block = 1
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[AuxKernels]
  [stress_00]
    type = RankTwoAux
    variable = stress_00
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_00]
    type = RankTwoAux
    variable = strain_00
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_11]
    type = RankTwoAux
    variable = stress_11
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_11]
    type = RankTwoAux
    variable = strain_11
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_22]
    type = RankTwoAux
    variable = stress_22
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_22]
    type = RankTwoAux
    variable = strain_22
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_01]
    type = RankTwoAux
    variable = stress_01
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_01]
    type = RankTwoAux
    variable = strain_01
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_10]
    type = RankTwoAux
    variable = stress_10
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_10]
    type = RankTwoAux
    variable = strain_10
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_02]
    type = RankTwoAux
    variable = stress_02
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_02]
    type = RankTwoAux
    variable = strain_02
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_20]
    type = RankTwoAux
    variable = stress_20
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_20]
    type = RankTwoAux
    variable = strain_20
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_12]
    type = RankTwoAux
    variable = stress_12
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_12]
    type = RankTwoAux
    variable = strain_12
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_21]
    type = RankTwoAux
    variable = stress_21
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_21]
    type = RankTwoAux
    variable = strain_21
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 1
    execute_on = TIMESTEP_END
  []
[]
[BCs]
  [BC_0]
    type = ADDirichletBC
    variable = disp_x
    value = 0.0
    boundary = '2' #left
  []
  [BC_1]
    type = ADDirichletBC
    variable = disp_y
    value = 0.0
    boundary = 10 #left_side_mid
  []
  [BC_2]
    type = ADMatNeumannBC
    variable = disp_x
    # Have to pick a property that is
    # - Real for ADMatNeumannBC
    # - part of the ADComputeIncrementalShellStrain material
    boundary_material = J_mapping_t_points_0
    boundary = '3'
  []
[]
[Materials]
  [stress]
    type = ADComputeShellStress
    block = 1
    through_thickness_order = SECOND
  []
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 210000
    poissons_ratio = 0.3
    block = 1
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    block = 1
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.1
    through_thickness_order = SECOND
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  nl_abs_tol = 1e-8
  l_abs_tol = 1e-8
  nl_max_its = 100
  l_max_its = 100
[]
[Outputs]
  exodus = true
[]
(modules/porous_flow/examples/coal_mining/coarse_with_fluid.i)
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used.  The mine is 400m deep and
# just the roof is studied (-400<=z<=0).  The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long.  The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
#  - disp_x = 0 at x=0 and x=1150
#  - disp_y = 0 at y=-1000 and y=1000
#  - disp_z = 0 at z=-400, but there is a time-dependent
#               Young modulus that simulates excavation
#  - wc_x = 0 at y=-1000 and y=1000
#  - wc_y = 0 at x=0 and x=1150
#  - no flow at x=0, z=-400 and z=0
#  - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
  perform_finite_strain_rotations = false
  displacements = 'disp_x disp_y disp_z'
  Cosserat_rotations = 'wc_x wc_y wc_z'
  PorousFlowDictator = dictator
  biot_coefficient = 0.7
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = mesh/coarse.e
  []
  [xmin]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = xmin
    normal = '-1 0 0'
    input = file
  []
  [xmax]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = xmax
    normal = '1 0 0'
    input = xmin
  []
  [ymin]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = ymin
    normal = '0 -1 0'
    input = xmax
  []
  [ymax]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    new_boundary = ymax
    normal = '0 1 0'
    input = ymin
  []
  [zmax]
    type = SideSetsAroundSubdomainGenerator
    block = 16
    new_boundary = zmax
    normal = '0 0 1'
    input = ymax
  []
  [zmin]
    type = SideSetsAroundSubdomainGenerator
    block = 2
    new_boundary = zmin
    normal = '0 0 -1'
    input = zmax
  []
  [excav]
    type = SubdomainBoundingBoxGenerator
    input = zmin
    block_id = 1
    bottom_left = '0 0 -400'
    top_right = '150 1000 -397'
  []
  [roof]
    type = SideSetsBetweenSubdomainsGenerator
    primary_block = 3
    paired_block = 1
    input = excav
    new_boundary = roof
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [wc_x]
  []
  [wc_y]
  []
  [porepressure]
    scaling = 1E-5
  []
[]
[ICs]
  [porepressure]
    type = FunctionIC
    variable = porepressure
    function = ini_pp
  []
[]
[Kernels]
  [cx_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  []
  [cy_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  []
  [cz_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_z
    component = 2
  []
  [x_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_x
    displacements = 'wc_x wc_y wc_z'
    component = 0
    base_name = couple
  []
  [y_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_y
    displacements = 'wc_x wc_y wc_z'
    component = 1
    base_name = couple
  []
  [x_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_x
    component = 0
  []
  [y_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_y
    component = 1
  []
  [gravity]
    type = Gravity
    use_displaced_mesh = false
    variable = disp_z
    value = -10E-6 # remember this is in MPa
  []
  [poro_x]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  []
  [poro_y]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  []
  [poro_z]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    component = 2
    variable = disp_z
  []
  [mass0]
    type = PorousFlowMassTimeDerivative
    fluid_component = 0
    variable = porepressure
  []
  [flux]
    type = PorousFlowAdvectiveFlux
    use_displaced_mesh = false
    variable = porepressure
    gravity = '0 0 -10E-6'
    fluid_component = 0
  []
  [poro_vol_exp]
    type = PorousFlowMassVolumetricExpansion
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    variable = porepressure
    fluid_component = 0
  []
[]
[AuxVariables]
  [saturation]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [porosity]
    order = CONSTANT
    family = MONOMIAL
  []
  [wc_z]
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_shear]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_tensile]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_shear]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_tensile]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_shear_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_shear_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [saturation_water]
    type = PorousFlowPropertyAux
    variable = saturation
    property = saturation
    phase = 0
    execute_on = timestep_end
  []
  [darcy_x]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_x
    gravity = '0 0 -10E-6'
    component = x
  []
  [darcy_y]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_y
    gravity = '0 0 -10E-6'
    component = y
  []
  [darcy_z]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_z
    gravity = '0 0 -10E-6'
    component = z
  []
  [porosity]
    type = PorousFlowPropertyAux
    property = porosity
    variable = porosity
    execute_on = timestep_end
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yx
    index_i = 1
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [stress_zx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zx
    index_i = 2
    index_j = 0
    execute_on = timestep_end
  []
  [stress_zy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zy
    index_i = 2
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_xx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_xy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_xz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_yx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yx
    index_i = 1
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_yy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_yz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_zx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zx
    index_i = 2
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_zy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zy
    index_i = 2
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_zz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [perm_xx]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_xx
    row = 0
    column = 0
    execute_on = timestep_end
  []
  [perm_yy]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_yy
    row = 1
    column = 1
    execute_on = timestep_end
  []
  [perm_zz]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_zz
    row = 2
    column = 2
    execute_on = timestep_end
  []
  [mc_shear]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_internal_parameter
    variable = mc_shear
    execute_on = timestep_end
  []
  [mc_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = mc_plastic_internal_parameter
    variable = mc_tensile
    execute_on = timestep_end
  []
  [wp_shear]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_internal_parameter
    variable = wp_shear
    execute_on = timestep_end
  []
  [wp_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_internal_parameter
    variable = wp_tensile
    execute_on = timestep_end
  []
  [mc_shear_f]
    type = MaterialStdVectorAux
    index = 6
    property = mc_plastic_yield_function
    variable = mc_shear_f
    execute_on = timestep_end
  []
  [mc_tensile_f]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_yield_function
    variable = mc_tensile_f
    execute_on = timestep_end
  []
  [wp_shear_f]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_yield_function
    variable = wp_shear_f
    execute_on = timestep_end
  []
  [wp_tensile_f]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_yield_function
    variable = wp_tensile_f
    execute_on = timestep_end
  []
[]
[BCs]
  [no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'xmin xmax'
    value = 0.0
  []
  [no_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'ymin ymax'
    value = 0.0
  []
  [no_z]
    type = DirichletBC
    variable = disp_z
    boundary = zmin
    value = 0.0
  []
  [no_wc_x]
    type = DirichletBC
    variable = wc_x
    boundary = 'ymin ymax'
    value = 0.0
  []
  [no_wc_y]
    type = DirichletBC
    variable = wc_y
    boundary = 'xmin xmax'
    value = 0.0
  []
  [fix_porepressure]
    type = FunctionDirichletBC
    variable = porepressure
    boundary = 'ymin ymax xmax'
    function = ini_pp
  []
  [roof_porepressure]
    type = PorousFlowPiecewiseLinearSink
    variable = porepressure
    pt_vals = '-1E3 1E3'
    multipliers = '-1 1'
    fluid_phase = 0
    flux_function = roof_conductance
    boundary = roof
  []
  [roof_bcs]
    type = StickyBC
    variable = disp_z
    min_value = -3.0
    boundary = roof
  []
[]
[Functions]
  [ini_pp]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0'
    symbol_values = '2E3 0.0 1E-5 1E3'
    expression = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
  []
  [ini_xx]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0 biot'
    symbol_values = '2E3 0.0 1E-5 1E3  0.7'
    expression = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
  []
  [ini_zz]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0 biot'
    symbol_values = '2E3 0.0 1E-5 1E3  0.7'
    expression = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
  []
  [excav_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval slope'
    symbol_values = '0.5   0    1000.0 1E-9 1 60'
    # excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
    # slope is the distance over which the modulus reduces from maxval to minval
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
  []
  [density_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval'
    symbol_values = '0.5   0    1000.0 0 2500'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
  []
  [roof_conductance]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax   maxval minval'
    symbol_values = '0.5   0    1000.0 1E7      0'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
  []
[]
[UserObjects]
  [dictator]
    type = PorousFlowDictator
    porous_flow_vars = 'porepressure disp_x disp_y disp_z'
    number_fluid_phases = 1
    number_fluid_components = 1
  []
  [pc]
    type = PorousFlowCapillaryPressureVG
    m = 0.5
    alpha = 1 # MPa^-1
  []
  [mc_coh_strong_harden]
    type = TensorMechanicsHardeningExponential
    value_0 = 1.99 # MPa
    value_residual = 2.01 # MPa
    rate = 1.0
  []
  [mc_fric]
    type = TensorMechanicsHardeningConstant
    value = 0.61 # 35deg
  []
  [mc_dil]
    type = TensorMechanicsHardeningConstant
    value = 0.15 # 8deg
  []
  [mc_tensile_str_strong_harden]
    type = TensorMechanicsHardeningExponential
    value_0 = 1.0 # MPa
    value_residual = 1.0 # MPa
    rate = 1.0
  []
  [mc_compressive_str]
    type = TensorMechanicsHardeningCubic
    value_0 = 100 # Large!
    value_residual = 100
    internal_limit = 0.1
  []
  [wp_coh_harden]
    type = TensorMechanicsHardeningCubic
    value_0 = 0.05
    value_residual = 0.05
    internal_limit = 10
  []
  [wp_tan_fric]
    type = TensorMechanicsHardeningConstant
    value = 0.26 # 15deg
  []
  [wp_tan_dil]
    type = TensorMechanicsHardeningConstant
    value = 0.18 # 10deg
  []
  [wp_tensile_str_harden]
    type = TensorMechanicsHardeningCubic
    value_0 = 0.05
    value_residual = 0.05
    internal_limit = 10
  []
  [wp_compressive_str_soften]
    type = TensorMechanicsHardeningCubic
    value_0 = 100
    value_residual = 1
    internal_limit = 1.0
  []
[]
[FluidProperties]
  [simple_fluid]
    type = SimpleFluidProperties
    bulk_modulus = 2E3
    density0 = 1000
    thermal_expansion = 0
    viscosity = 3.5E-17
  []
[]
[Materials]
  [temperature]
    type = PorousFlowTemperature
  []
  [eff_fluid_pressure]
    type = PorousFlowEffectiveFluidPressure
  []
  [vol_strain]
    type = PorousFlowVolumetricStrain
  []
  [ppss]
    type = PorousFlow1PhaseP
    porepressure = porepressure
    capillary_pressure = pc
  []
  [massfrac]
    type = PorousFlowMassFraction
  []
  [simple_fluid]
    type = PorousFlowSingleComponentFluid
    fp = simple_fluid
    phase = 0
  []
  [porosity_bulk]
    type = PorousFlowPorosity
    fluid = true
    mechanical = true
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    ensure_positive = true
    porosity_zero = 0.02
    solid_bulk = 5.3333E3
  []
  [porosity_excav]
    type = PorousFlowPorosityConst
    block = 1
    porosity = 1.0
  []
  [permeability_bulk]
    type = PorousFlowPermeabilityKozenyCarman
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    poroperm_function = kozeny_carman_phi0
    k0 = 1E-15
    phi0 = 0.02
    n = 2
    m = 2
  []
  [permeability_excav]
    type = PorousFlowPermeabilityConst
    block = 1
    permeability = '0 0 0   0 0 0   0 0 0'
  []
  [relperm]
    type = PorousFlowRelativePermeabilityCorey
    n = 4
    s_res = 0.4
    sum_s_res = 0.4
    phase = 0
  []
  [elasticity_tensor_0]
    type = ComputeLayeredCosseratElasticityTensor
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
  []
  [elasticity_tensor_1]
    type = ComputeLayeredCosseratElasticityTensor
    block = 1
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
    elasticity_tensor_prefactor = excav_sideways
  []
  [strain]
    type = ComputeCosseratIncrementalSmallStrain
    eigenstrain_names = ini_stress
  []
  [ini_stress]
    type = ComputeEigenstrainFromInitialStress
    eigenstrain_name = ini_stress
    initial_stress = 'ini_xx 0 0  0 ini_xx 0  0 0 ini_zz'
  []
  [stress_0]
    type = ComputeMultipleInelasticCosseratStress
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    inelastic_models = 'mc wp'
    cycle_models = true
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  []
  [stress_1]
    type = ComputeMultipleInelasticCosseratStress
    block = 1
    inelastic_models = ''
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  []
  [mc]
    type = CappedMohrCoulombCosseratStressUpdate
    warn_about_precision_loss = false
    host_youngs_modulus = 8E3
    host_poissons_ratio = 0.25
    base_name = mc
    tensile_strength = mc_tensile_str_strong_harden
    compressive_strength = mc_compressive_str
    cohesion = mc_coh_strong_harden
    friction_angle = mc_fric
    dilation_angle = mc_dil
    max_NR_iterations = 100000
    smoothing_tol = 0.1 # MPa  # Must be linked to cohesion
    yield_function_tol = 1E-9 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0
  []
  [wp]
    type = CappedWeakPlaneCosseratStressUpdate
    warn_about_precision_loss = false
    base_name = wp
    cohesion = wp_coh_harden
    tan_friction_angle = wp_tan_fric
    tan_dilation_angle = wp_tan_dil
    tensile_strength = wp_tensile_str_harden
    compressive_strength = wp_compressive_str_soften
    max_NR_iterations = 10000
    tip_smoother = 0.05
    smoothing_tol = 0.05 # MPa  # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
    yield_function_tol = 1E-11 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0E-3
  []
  [undrained_density_0]
    type = GenericConstantMaterial
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    prop_names = density
    prop_values = 2500
  []
  [undrained_density_1]
    type = GenericFunctionMaterial
    block = 1
    prop_names = density
    prop_values = density_sideways
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [min_roof_disp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = disp_z
  []
  [min_roof_pp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = porepressure
  []
  [min_surface_disp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = disp_z
  []
  [min_surface_pp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = porepressure
  []
  [max_perm_zz]
    type = ElementExtremeValue
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16'
    variable = perm_zz
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason'
  # best overall
  # petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  # petsc_options_value = ' lu       mumps'
  # best if you do not have mumps:
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       superlu_dist'
  # best if you do not have mumps or superlu_dist:
  #petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
  #petsc_options_value = ' asm      2              lu            gmres     200'
  # very basic:
  #petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
  #petsc_options_value = ' bjacobi  gmres     200'
  line_search = bt
  nl_abs_tol = 1e-3
  nl_rel_tol = 1e-5
  l_max_its = 200
  nl_max_its = 30
  start_time = 0.0
  dt = 0.014706
  end_time = 0.014706 #0.5
[]
[Outputs]
  time_step_interval = 1
  print_linear_residuals = true
  exodus = true
  csv = true
  console = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_conduction.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[ThermalContact]
  [thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 100
    secondary = 101
    emissivity_primary = 0.0
    emissivity_secondary = 0.0
    gap_conductivity = 100.0
    quadrature = true
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
                  0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  base_name = 'whatever'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = TotalLagrangianStressDivergence
    variable = disp_x
    component = 0
  []
  [sdy]
    type = TotalLagrangianStressDivergence
    variable = disp_y
    component = 1
  []
  [sdz]
    type = TotalLagrangianStressDivergence
    variable = disp_z
    component = 2
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = whatever_cauchy_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = whatever_mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
    elasticity_tensor = elasticity_tensor
  []
  [compute_strain]
    type = ComputeLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar_friction.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = multiple_pairs.e
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    generate_output = 'stress_xx'
    block = '1 2 3'
  []
[]
[Materials]
  [stiffStuff]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stiffStuff_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[ICs]
  [disp_y]
    block = '2 3'
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Contact]
  [first_pair]
    primary = '20'
    secondary = '10 '
    model = coulomb
    formulation = mortar
    c_normal = 1e+04
    c_tangential = 1.0e2
    friction_coefficient = 0.2
    tangential_lm_scaling = 1.0e-6
    normal_lm_scaling = 1.0e-6
  []
  [second_pair]
    primary = '20'
    secondary = '101'
    model = coulomb
    formulation = mortar
    c_normal = 1e+04
    c_tangential = 1.0e2
    friction_coefficient = 0.2
    tangential_lm_scaling = 1.0e-6
    normal_lm_scaling = 1.0e-6
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    preset = false
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    preset = false
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    preset = false
    boundary = '30 301'
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    preset = false
    boundary = '50 501'
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  dt = 2.0
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 20
  nl_abs_tol = 1e-7
  line_search = 'none'
  end_time = 18
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = 'num_nl cumulative'
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
[]
(modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_automatic_pair.i)
[GlobalParams]
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = three_hexagons_coarse.e
  []
  patch_size = 10
  patch_update_strategy = auto
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1 2 3'
    planar_formulation = PLANE_STRAIN
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '110'
      function = pressure
      factor = 80
    []
    [hex2_pressure]
      boundary = '210'
      function = pressure
      factor = 50
    []
  []
[]
[Contact]
  [contact_pressure]
    formulation = penalty
    model = frictionless
    penalty = 2e+03
    normalize_penalty = true
    automatic_pairing_distance = 2.75
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 4.0
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/diverger/diverger.i)
mu = 2.6
rho = 1.0
cp = 700
advected_interp_method = 'upwind'
velocity_interp_method = 'rc'
pressure_tag = "pressure_grad"
[Mesh]
  # uniform_refine = 1
  [fmg]
    type = FileMeshGenerator
    file = "diverger-2d.msh"
  []
[]
[GlobalParams]
  rhie_chow_user_object = 'rc'
[]
[Problem]
  nl_sys_names = 'u_system v_system pressure_system energy_system'
  previous_nl_solution_required = true
  error_on_jacobian_nonzero_reallocation = true
[]
[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolatorSegregated
    u = vel_x
    v = vel_y
    pressure = pressure
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
    initial_condition = 0.5
    solver_sys = u_system
    two_term_boundary_expansion = false
  []
  [vel_y]
    type = INSFVVelocityVariable
    initial_condition = 0.0
    solver_sys = v_system
    two_term_boundary_expansion = false
  []
  [pressure]
    type = INSFVPressureVariable
    solver_sys = pressure_system
    initial_condition = 0.2
    # two_term_boundary_expansion = false
  []
  [T]
    type = INSFVEnergyVariable
    two_term_boundary_expansion = false
    solver_sys = energy_system
    initial_condition = 700
  []
[]
[FVKernels]
  [u_advection]
    type = INSFVMomentumAdvection
    variable = vel_x
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_x
    mu = ${mu}
    momentum_component = 'x'
  []
  [u_pressure]
    type = INSFVMomentumPressure
    variable = vel_x
    momentum_component = 'x'
    pressure = pressure
    extra_vector_tags = ${pressure_tag}
  []
  [v_advection]
    type = INSFVMomentumAdvection
    variable = vel_y
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_y
    mu = ${mu}
    momentum_component = 'y'
  []
  [v_pressure]
    type = INSFVMomentumPressure
    variable = vel_y
    momentum_component = 'y'
    pressure = pressure
    extra_vector_tags = ${pressure_tag}
  []
  [p_diffusion]
    type = FVAnisotropicDiffusion
    variable = pressure
    coeff = "Ainv"
    coeff_interp_method = 'average'
  []
  [p_source]
    type = FVDivergence
    variable = pressure
    vector_field = "HbyA"
    force_boundary_execution = true
  []
  [heat_advection]
    type = INSFVEnergyAdvection
    variable = T
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
  []
  [heat_diffusion]
    type = FVDiffusion
    variable = T
    coeff = '10'
  []
[]
[FVBCs]
  [inlet-u]
    type = INSFVInletVelocityBC
    boundary = 'inlet'
    variable = vel_x
    functor = '1.1'
  []
  [inlet-v]
    type = INSFVInletVelocityBC
    boundary = 'inlet'
    variable = vel_y
    functor = '0.0'
  []
  [inlet-T]
    type = FVDirichletBC
    boundary = 'inlet'
    value = 700
    variable = T
  []
  [walls-u]
    type = INSFVNoSlipWallBC
    boundary = 'top bottom'
    variable = vel_x
    function = 0.0
  []
  [walls-v]
    type = INSFVNoSlipWallBC
    boundary = 'top bottom'
    variable = vel_y
    function = 0.0
  []
  [outlet_p]
    type = INSFVOutletPressureBC
    boundary = 'outlet'
    variable = pressure
    function = 1.4
  []
  [zerograd-p]
    type = FVNeumannBC
    boundary = 'top bottom inlet'
    variable = pressure
    value = 0
  []
[]
[FunctorMaterials]
  [mu]
    type = ADGenericFunctorMaterial #defines mu artificially for numerical convergence
    prop_names = 'mu rho cp' #it converges to the real mu eventually.
    prop_values = '${mu} ${rho} ${cp}'
  []
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial
    rho = ${rho}
    cp = ${cp}
    temperature = 'T'
  []
[]
[Executioner]
  type = SIMPLENonlinearAssembly
  momentum_l_abs_tol = 1e-12
  pressure_l_abs_tol = 1e-12
  energy_l_abs_tol = 1e-12
  momentum_l_tol = 0
  pressure_l_tol = 0
  energy_l_tol = 0
  rhie_chow_user_object = 'rc'
  momentum_systems = 'u_system v_system'
  pressure_system = 'pressure_system'
  energy_system = 'energy_system'
  pressure_gradient_tag = ${pressure_tag}
  momentum_equation_relaxation = 0.8
  pressure_variable_relaxation = 0.3
  num_iterations = 100
  pressure_absolute_tolerance = 1e-13
  momentum_absolute_tolerance = 1e-13
  energy_absolute_tolerance = 1e-13
  print_fields = false
  continue_on_max_its = true
[]
[Outputs]
  exodus = true
  csv = false
  perf_graph = false
  print_nonlinear_residuals = false
  print_linear_residuals = true
[]
(test/tests/meshgenerators/block_to_mesh_converter_generator/conv_lowerDblock.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = mixedDimMesh.e
  []
  [blockToMesh]
    type = BlockToMeshConverterGenerator
    input = file
    target_blocks = "1"
  []
[]
(test/tests/restart/p_refinement_restart/restarted_steady.i)
[Mesh]
  [cmg]
    type = FileMeshGenerator
    file = steady_out_cp/LATEST
    skip_partitioning = true
  []
[]
[Problem]
  restart_file_base = steady_out_cp/LATEST
[]
[Variables]
  [u]
    family = MONOMIAL
    order = FIRST
  []
[]
[AuxVariables]
  [test][]
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [src]
    type = BodyForce
    variable = u
    value = 1
  []
[]
[DGKernels]
  [dg_diff]
    type = DGDiffusion
    variable = u
    epsilon = -1
    sigma = 6
  []
[]
[BCs]
  [left_u]
    type = DGFunctionDiffusionDirichletBC
    variable = u
    boundary = '0 1 2 3'
    function = 0
    epsilon = -1
    sigma = 6
  []
[]
[Postprocessors]
  [avg]
    type = ElementAverageValue
    variable = u
  []
[]
[Executioner]
  type = Steady
  nl_abs_tol = 1e-10
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/periodic-value/periodic.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = square.msh
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '103'
  []
[]
[Variables]
  [u]
    order = SECOND
    block = 'domain'
  []
  [lm]
    block = 'secondary'
  []
[]
[Kernels]
  [diffusion]
    type = Diffusion
    variable = u
    block = 'domain'
  []
  [force]
    type = BodyForce
    variable = u
    block = 'domain'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    value = 1
    boundary = 'left'
  []
[]
[Constraints]
  [ev]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = 103
    secondary_boundary = 101
    primary_subdomain = 12
    secondary_subdomain = 11
    periodic = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/variational-frictional.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
  correct_edge_dropping = true
[]
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks-coarse.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
    scaling = 1e1
  []
  [disp_y]
    block = '1 2'
    scaling = 1e1
  []
  [contact_action_normal_lm]
    block = 4
    scaling = 1e3
  []
  [contact_action_tangential_lm]
    block = 4
    scaling = 1e2
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[AuxVariables]
  [procid]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [procid]
    type = ProcessorIDAux
    variable = procid
  []
[]
[UserObjects]
  [weighted_velocities_uo]
    type = LMWeightedVelocitiesUserObject
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    lm_variable_normal = contact_action_normal_lm
    lm_variable_tangential_one = contact_action_tangential_lm
    secondary_variable = disp_x
    disp_x = disp_x
    disp_y = disp_y
    correct_edge_dropping = true
  []
[]
[Constraints]
  [frictional_normal_lm]
    type = ComputeFrictionalForceLMMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = contact_action_normal_lm
    friction_lm = contact_action_tangential_lm
    disp_x = disp_x
    disp_y = disp_y
    mu = 0.1
    normalize_c = true
    c = 1.0e-2
    c_t = 1.0e-1
    correct_edge_dropping = true
    weighted_velocities_uo = weighted_velocities_uo
    weighted_gap_uo = weighted_velocities_uo
  []
  [normal_x]
    type = NormalMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = contact_action_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_velocities_uo
  []
  [normal_y]
    type = NormalMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = contact_action_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_velocities_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = contact_action_tangential_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_velocities_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = contact_action_tangential_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_velocities_uo
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       NONZERO               1e-15'
  l_max_its = 30
  nl_max_its = 25
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
  hide = procid
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
(test/tests/meshgenerators/file_mesh_generator/1d_discontinuous_iga.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = test_2edge.e
    discontinuous_spline_extraction = true
  []
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [diff]
    type = Diffusion
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = 'sin(x)'
  []
[]
[Executioner]
  type = Transient
  num_steps = 2
  solve_type = NEWTON
  dtmin = 1
[]
[Outputs]
  exodus = true
[]
(modules/scalar_transport/test/tests/physics/restart/test_cg.i)
[Mesh]
  active = 'cmg'
  [cmg]
    type = CartesianMeshGenerator
    dim = 2
    dx = 10
    dy = 10
  []
  [fmg_restart]
    type = FileMeshGenerator
    file = user_ics.e
    use_for_exodus_restart = true
  []
[]
[Debug]
  show_actions=true
[]
[Physics]
  [MultiSpeciesDiffusion]
    [ContinuousGalerkin]
      [diff]
        # A and C have the same equation, on purpose
        species = 'A B C'
        diffusivity_matprops = '1 1 1'
        source_functors = '0 2 0'
        source_coefs = '1 2 1'
      []
    []
  []
[]
[Executioner]
  type = Transient
  num_steps = 1
  verbose = true
[]
[Problem]
  solve = false
[]
[Outputs]
  # Used to set up a restart from checkpoint
  checkpoint = true
  # Used to set up a restart from exodus file
  [exodus]
    type = Exodus
    execute_on = TIMESTEP_END
  []
  # Used to check results
  csv = true
  execute_on = INITIAL
[]
[Postprocessors]
  [min_A]
    type = ElementExtremeValue
    variable = 'A'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_A]
    type = ElementExtremeValue
    variable = 'A'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_B]
    type = ElementExtremeValue
    variable = 'B'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_B]
    type = ElementExtremeValue
    variable = 'B'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_C]
    type = ElementExtremeValue
    variable = 'C'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_C]
    type = ElementExtremeValue
    variable = 'C'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
[]
(modules/ray_tracing/test/tests/traceray/nonplanar/nonplanar.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nonplanar.e
  []
[]
[RayBCs/kill]
  type = KillRayBC
  boundary = 'top right bottom left front back'
[]
[RayKernels/null]
  type = NullRayKernel
[]
[UserObjects/lots]
  type = LotsOfRaysRayStudy
  vertex_to_vertex = true
  centroid_to_vertex = true
  centroid_to_centroid = true
  side_aq = true
  centroid_aq = true
  compute_expected_distance = true
  warn_non_planar = false
  execute_on = initial
[]
[Postprocessors]
  [total_distance]
    type = RayTracingStudyResult
    study = lots
    result = total_distance
  []
  [expected_distance]
    type = LotsOfRaysExpectedDistance
    lots_of_rays_study = lots
  []
  [distance_difference]
    type = DifferencePostprocessor
    value1 = total_distance
    value2 = expected_distance
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  exodus = false
  csv = true
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_splittrue.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = 4ElementJunction.e
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
    split_interface = true
  []
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/2d-rc-action-nulltr.i)
mu = 1.1
rho = 1.1
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2d-rc-action_out.e
    use_for_exodus_restart = true
  []
[]
[Debug]
  show_actions = true
[]
[Modules]
  [NavierStokesFV]
    compressibility = 'incompressible'
    porous_medium_treatment = false
    add_energy_equation = false
    density = 'rho'
    dynamic_viscosity = 'mu'
    inlet_boundaries = 'left'
    momentum_inlet_types = 'fixed-velocity'
    momentum_inlet_functors = '1 0'
    wall_boundaries = 'top bottom'
    momentum_wall_types = 'slip slip'
    outlet_boundaries = 'right'
    momentum_outlet_types = 'fixed-pressure'
    pressure_functors = '0'
    # initialize from mesh file
    initialize_variables_from_mesh_file = true
  []
[]
[FunctorMaterials]
  [const]
    type = ADGenericFunctorMaterial
    prop_names = 'rho mu'
    prop_values = '${rho} ${mu}'
  []
[]
[Executioner]
  type = Transient
  dt = 1
  num_steps = 2
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu NONZERO'
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-8
[]
[Outputs]
  exodus = true
  csv = true
[]
(modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [fmg]
    type = FileMeshGenerator
    file = squares.e
  []
  [gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [scalar_strain_zz1]
    order = FIRST
    family = SCALAR
  []
  [scalar_strain_zz2]
    order = FIRST
    family = SCALAR
  []
[]
[AuxVariables]
  [temp]
    order = FIRST
    family = LAGRANGE
  []
  [stress_zz1]
    order = FIRST
    family = LAGRANGE
  []
  [stress_zz2]
    order = FIRST
    family = LAGRANGE
  []
[]
[Modules/Peridynamics/Mechanics]
  [Master]
    [block1]
      formulation = ORDINARY_STATE
      block = 1001
    []
    [block2]
      formulation = ORDINARY_STATE
      block = 1002
    []
  []
  [GeneralizedPlaneStrain]
    [block1]
      formulation = ORDINARY_STATE
      scalar_out_of_plane_strain = scalar_strain_zz1
      out_of_plane_stress_variable = stress_zz1
      block = 1001
    []
    [block2]
      formulation = ORDINARY_STATE
      scalar_out_of_plane_strain = scalar_strain_zz2
      out_of_plane_stress_variable = stress_zz2
      block = 1002
    []
  []
[]
[AuxKernels]
  [tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    use_displaced_mesh = false
  []
  [stress_zz1]
    type = NodalRankTwoPD
    variable = stress_zz1
    rank_two_tensor = stress
    scalar_out_of_plane_strain = scalar_strain_zz1
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    output_type = component
    index_i = 2
    index_j = 2
    block = 1001
  []
  [stress_zz2]
    type = NodalRankTwoPD
    variable = stress_zz2
    scalar_out_of_plane_strain = scalar_strain_zz2
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    rank_two_tensor = stress
    output_type = component
    index_i = 2
    index_j = 2
    block = 1002
  []
[]
[Postprocessors]
  [react_z1]
    type = NodalVariableIntegralPD
    variable = stress_zz1
    block = 1001
  []
  [react_z2]
    type = NodalVariableIntegralPD
    variable = stress_zz2
    block = 1002
  []
[]
[Functions]
  [tempfunc]
    type = ParsedFunction
    expression = '(1-x)*t'
  []
[]
[BCs]
  [bottom1_x]
    type = DirichletBC
    boundary = 1001
    variable = disp_x
    value = 0.0
  []
  [bottom1_y]
    type = DirichletBC
    boundary = 1001
    variable = disp_y
    value = 0.0
  []
  [bottom2_x]
    type = DirichletBC
    boundary = 1002
    variable = disp_x
    value = 0.0
  []
  [bottom2_y]
    type = DirichletBC
    boundary = 1002
    variable = disp_y
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    poissons_ratio = 0.3
    youngs_modulus = 1e6
    block = '1001 1002'
  []
  [force_density1]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    scalar_out_of_plane_strain = scalar_strain_zz1
    block = 1001
  []
  [force_density2]
    type = ComputeSmallStrainVariableHorizonMaterialOSPD
    temperature = temp
    thermal_expansion_coeff = 0.02
    stress_free_temperature = 0.5
    scalar_out_of_plane_strain = scalar_strain_zz2
    block = 1002
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  l_tol = 1e-8
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-09
  start_time = 0.0
  end_time = 1.0
  use_pre_SMO_residual = true
[]
[Outputs]
  exodus = true
  file_base = generalized_plane_strain_squares_OSPD
[]
(modules/navier_stokes/test/tests/finite_volume/cns/pressure_outlet/subsonic_nozzle_fixed_inflow_hllc.i)
inlet_vel = 120
rho_in = 0.8719748696
H_in = 4.0138771448e+05
gamma = 1.4
R = 8.3145
molar_mass = 29e-3
R_specific = ${fparse R / molar_mass}
cp = ${fparse gamma * R_specific / (gamma - 1)}
cv = ${fparse cp / gamma}
T_in = ${fparse H_in / gamma / cv}
mass_flux = ${fparse inlet_vel * rho_in}
outlet_pressure = 0.9e5
[GlobalParams]
  fp = fp
[]
[Debug]
   show_material_props = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = subsonic_nozzle.e
  []
[]
[FluidProperties]
  [fp]
    type = IdealGasFluidProperties
  []
[]
[Variables]
  [rho]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 0.8719748696
  []
  [rho_u]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 1e-4
  []
  [rho_v]
    family = MONOMIAL
    order = CONSTANT
    fv = true
  []
  [rho_E]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 2.5e5
  []
[]
[FVKernels]
  # Mass conservation
  [mass_time]
    type = FVTimeKernel
    variable = rho
  []
  [mass_advection]
    type = CNSFVMassHLLC
    variable = rho
  []
  # Momentum x conservation
  [momentum_x_time]
    type = FVTimeKernel
    variable = rho_u
  []
  [momentum_x_advection]
    type = CNSFVMomentumHLLC
    variable = rho_u
    momentum_component = x
  []
  # Momentum y conservation
  [momentum_y_time]
    type = FVTimeKernel
    variable = rho_v
  []
  [momentum_y_advection]
    type = CNSFVMomentumHLLC
    variable = rho_v
    momentum_component = y
  []
  # Fluid energy conservation
  [fluid_energy_time]
    type = FVTimeKernel
    variable = rho_E
  []
  [fluid_energy_advection]
    type = CNSFVFluidEnergyHLLC
    variable = rho_E
  []
[]
[FVBCs]
  ## inflow boundaries
  [mass_inflow]
    type = CNSFVHLLCSpecifiedMassFluxAndTemperatureMassBC
    variable = rho
    boundary = left
    rhou = ${mass_flux}
    rhov = 0
    temperature = ${T_in}
  []
  [momentum_x_inflow]
    type = CNSFVHLLCSpecifiedMassFluxAndTemperatureMomentumBC
    variable = rho_u
    boundary = left
    rhou = ${mass_flux}
    rhov = 0
    temperature = ${T_in}
    momentum_component = x
  []
  [momentum_y_inflow]
    type = CNSFVHLLCSpecifiedMassFluxAndTemperatureMomentumBC
    variable = rho_v
    boundary = left
    rhou = ${mass_flux}
    rhov = 0
    temperature = ${T_in}
    momentum_component = y
  []
  [fluid_energy_inflow]
    type = CNSFVHLLCSpecifiedMassFluxAndTemperatureFluidEnergyBC
    variable = rho_E
    boundary = left
    rhou = ${mass_flux}
    rhov = 0
    temperature = ${T_in}
  []
  ## outflow conditions
  [mass_outflow]
    type = CNSFVHLLCSpecifiedPressureMassBC
    variable = rho
    boundary = right
    pressure = ${outlet_pressure}
  []
  [momentum_x_outflow]
    type = CNSFVHLLCSpecifiedPressureMomentumBC
    variable = rho_u
    boundary = right
    momentum_component = x
    pressure = ${outlet_pressure}
  []
  [momentum_y_outflow]
    type = CNSFVHLLCSpecifiedPressureMomentumBC
    variable = rho_v
    boundary = right
    momentum_component = y
    pressure = ${outlet_pressure}
  []
  [fluid_energy_outflow]
    type = CNSFVHLLCSpecifiedPressureFluidEnergyBC
    variable = rho_E
    boundary = right
    pressure = ${outlet_pressure}
    []
  # wall conditions
  [momentum_x_pressure_wall]
    type = CNSFVMomImplicitPressureBC
    variable = rho_u
    momentum_component = x
    boundary = wall
  []
  [momentum_y_pressure_wall]
    type = CNSFVMomImplicitPressureBC
    variable = rho_v
    momentum_component = y
    boundary = wall
  []
[]
[AuxVariables]
  [Ma]
    family = MONOMIAL
    order = CONSTANT
  []
  [p]
    family = MONOMIAL
    order = CONSTANT
  []
  [Ma_layered]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[UserObjects]
  [layered_Ma_UO]
    type = LayeredAverage
    variable = Ma
    num_layers = 10
    direction = x
  []
[]
[AuxKernels]
  [Ma_aux]
    type = NSMachAux
    variable = Ma
    fluid_properties = fp
    use_material_properties = true
  []
  [p_aux]
    type = ADMaterialRealAux
    variable = p
    property = pressure
  []
  [Ma_layered_aux]
    type = SpatialUserObjectAux
    variable = Ma_layered
    user_object = layered_Ma_UO
  []
[]
[Materials]
  [var_mat]
    type = ConservedVarValuesMaterial
    rho = rho
    rhou = rho_u
    rhov = rho_v
    rho_et = rho_E
  []
  [sound_speed]
    type = SoundspeedMat
  []
[]
[Postprocessors]
  [outflow_Ma]
    type = SideAverageValue
    variable = Ma
    boundary = right
  []
  [outflow_pressure]
    type = SideAverageValue
    variable = p
    boundary = right
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    petsc_options_iname = '-pc_type'
    petsc_options_value = 'lu'
  []
[]
[Executioner]
  type = Transient
  end_time = 10
  solve_type = NEWTON
  nl_abs_tol = 1e-7
  [TimeIntegrator]
    type = ImplicitEuler
  []
  [TimeStepper]
    type = IterationAdaptiveDT
    dt = 5e-3
    optimal_iterations = 6
    growth_factor = 1.5
  []
[]
[VectorPostprocessors]
  [Ma_layered]
    type = LineValueSampler
    variable = Ma_layered
    start_point = '0 0 0'
    end_point = '3 0 0'
    num_points = 100
    sort_by = x
    warn_discontinuous_face_values = false
  []
[]
[Outputs]
  [out]
    type = Exodus
    execute_on = 'final'
  []
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_polycrystal.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = poly.msh
    #parallel_type = replicated
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
    split_interface = true
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/xyz_delaunay_generator/xyzdelaunay_mesh_generator_2d.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'gold/2d_cube.e'
  []
  [outer_bdy]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = "x"
    y_function = "y"
    z_function = "z+x*y*z"
  []
  [triang]
    type = XYZDelaunayGenerator
    boundary = 'outer_bdy'
    # Let NetGen know interior points are okay
    desired_volume = 100000
  []
[]
[Executioner]
  type = Steady
[]
[Postprocessors]
  [volume]
    type = VolumePostprocessor
  []
[]
[Problem]
  solve = false
[]
[Outputs]
  [output]
    type = CSV
    file_base = 'xyzdelaunay_mesh_generator_out'
  []
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-action.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-no-lower-d.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [DynamicTensorMechanics]
    displacements = 'disp_x disp_y'
    generate_output = 'stress_xx stress_yy'
    strain = FINITE
    block = '1 2'
    stiffness_damping_coefficient = 1.0
    hht_alpha = 0.0
  []
  [inertia_x]
    type = InertialForce
    variable = disp_x
    velocity = vel_x
    acceleration = accel_x
    beta = 0.25
    gamma = 0.5
    alpha = 0
    eta = 0.0
    block = '1 2'
  []
  [inertia_y]
    type = InertialForce
    variable = disp_y
    velocity = vel_y
    acceleration = accel_y
    beta = 0.25
    gamma = 0.5
    alpha = 0
    eta = 0.0
    block = '1 2'
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
  [strain]
    type = ComputeFiniteStrain
    block = '1 2'
  []
  [density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '7750'
  []
[]
[AuxVariables]
  [vel_x]
    block = '1 2'
  []
  [accel_x]
    block = '1 2'
  []
  [vel_y]
    block = '1 2'
  []
  [accel_y]
    block = '1 2'
  []
  [vel_z]
    block = '1 2'
  []
  [accel_z]
    block = '1 2'
  []
[]
[AuxKernels]
  [accel_x]
    type = NewmarkAccelAux
    variable = accel_x
    displacement = disp_x
    velocity = vel_x
    beta = 0.25
    execute_on = 'LINEAR timestep_end'
  []
  [vel_x]
    type = NewmarkVelAux
    variable = vel_x
    acceleration = accel_x
    gamma = 0.5
    execute_on = 'LINEAR timestep_end'
  []
  [accel_y]
    type = NewmarkAccelAux
    variable = accel_y
    displacement = disp_y
    velocity = vel_y
    beta = 0.25
    execute_on = 'LINEAR timestep_end'
  []
  [vel_y]
    type = NewmarkVelAux
    variable = vel_y
    acceleration = accel_y
    gamma = 0.5
    execute_on = 'LINEAR timestep_end'
  []
[]
[Contact]
  [mechanical]
    primary = 20
    secondary = 10
    formulation = mortar
    model = frictionless
    c_normal = 1e4
    capture_tolerance = 1.0e-5
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 75
  dt = 0.05
  dtmin = .05
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor -snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  nl_max_its = 20
  line_search = 'none'
  snesmf_reuse_base = false
  [TimeIntegrator]
    type = NewmarkBeta
    beta = 0.25
    gamma = 0.5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
  checkpoint = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = ''
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = radiation
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/czm_patch_test_base.i)
# Patch test for cohesive zone modeling to check the jacobian of cohesive kernels and materials.
# One test of this kind should be included when adding a new traction separation law.
# To preperly check the cohesive zone Jacobian, the cohesive stiffness should be low compared to the bulk stiffness.
# Quadratic convergence is always expected.
[Mesh]
  [./msh]
  type = FileMeshGenerator
  file = patch_mesh.e
  []
  [./split]
    type = BreakMeshByBlockGenerator
    input = msh
  []
  [./add_surfaces]
    type = SideSetsFromNormalsGenerator
    input = split
    normals = '0  0  1
               0  1  0
               1  0  0
               0  0 -1
               0 -1  0
              -1  0  0'
    fixed_normal = true
    new_boundary = 'z1 y1 x1 z0 y0 x0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [./all]
        strain = FINITE
        add_variables = true
        use_finite_deform_jacobian = true
        use_automatic_differentiation = true
      [../]
    [../]
  [../]
[]
[Functions]
  [./stretch]
    type = PiecewiseLinear
    x = '0 0.05'
    y = '0 0.1'
  [../]
[]
[Constraints]
  [x1]
    type = EqualValueBoundaryConstraint
    variable = disp_x
    secondary = 'x1'    # boundary
    penalty = 1e6
  []
  [y1]
    type = EqualValueBoundaryConstraint
    variable = disp_y
    secondary = 'y1'    # boundary
    penalty = 1e6
  []
[]
[BCs]
  [./fix_x]
    type = DirichletBC
    preset = true
    value = 0.0
    boundary = 'x0'
    variable = disp_x
  [../]
  [./fix_y]
    type = DirichletBC
    preset = true
    value = 0.0
    boundary = 'y0'
    variable = disp_y
  [../]
  [./fix_z]
    type = DirichletBC
    preset = true
    value = 0.0
    boundary = 'z0'
    variable = disp_z
  [../]
  [./back_z]
    type = FunctionDirichletBC
    boundary = 'z1'
    variable = disp_z
    use_displaced_mesh = true
    function = stretch
  [../]
  [./rotate_x]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 0
    variable = disp_x
    angular_velocity = true
  [../]
  [./rotate_y]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 1
    variable = disp_y
    angular_velocity = true
  [../]
  [./rotate_z]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 2
    variable = disp_z
    angular_velocity = true
  [../]
[]
[Controls]
  [./c1]
    type = TimePeriod
    enable_objects = 'BCs::fix_x BCs::fix_y BCs::fix_z BCs::back_z Constraints::x1 Constraints::y1'
    disable_objects = 'BCs::rotate_x BCs::rotate_y BCs::rotate_z'
    start_time = '0'
    end_time = '0.051'
    execute_on = 'initial timestep_begin'
  [../]
[]
[Physics/SolidMechanics/CohesiveZone]
  [./czm_ik]
    boundary = 'interface'
  [../]
[]
[Materials]
  [./stress]
    type = ADComputeFiniteStrainElasticStress
  [../]
  [./elasticity_tensor]
    type = ADComputeElasticityTensor
    fill_method = symmetric9
    C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
  [../]
  [./czm_mat]
    boundary = 'interface'
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 15
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.025
  end_time = 0.075
[]
[Postprocessors]
  [./nonlin]
    type = NumNonlinearIterations
  [../]
[]
[Outputs]
  csv = true
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_yz.i)
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the y-z plane.  Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit.  The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors.  These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
  [file]
    type = FileMeshGenerator
    file = simple_2D.e
  []
  [./rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '0 90 90'
    input = file
  [../]
[]
[Functions]
  [./temp]
    type = PiecewiseLinear
    x = '0   1   2'
    y = '100 200 200'
  [../]
[]
[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
  [../]
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 100
  [../]
[]
[AuxVariables]
  [./gap_cond]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
[]
[BCs]
  [./temp_far_bottom]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = temp
  [../]
  [./temp_far_top]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  [../]
[]
[AuxKernels]
  [./conductance]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_cond
    boundary = 2
  [../]
[]
[Materials]
  [./heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 100000000.0
  [../]
  [./density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '1.0'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = '201                hypre    boomeramg      4'
  line_search = 'none'
  nl_rel_tol = 1e-12
  l_tol = 1e-3
  l_max_its = 100
  dt = 1e-1
  end_time = 1.0
[]
[Postprocessors]
  [./temp_bottom]
    type = SideAverageValue
    boundary = 2
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./temp_top]
    type = SideAverageValue
    boundary = 3
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./flux_bottom]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
    execute_on = 'initial timestep_end'
  [../]
  [./flux_top]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/Error_nonexisting_sideset.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = disk.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
    sidesets_to_pd = '3'
  [../]
[]
(test/tests/mortar/displaced-gap-conductance-2d-non-conforming/gap-conductance.i)
[Mesh]
  displacements = 'disp_x disp_y'
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
    # block 1: left
    # block 2: right
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[AuxVariables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[AuxKernels]
  [function_x]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_x'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
  [function_y]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_y'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
[]
[Problem]
  kernel_coverage_check = false
  use_hash_table_matrix_assembly = true
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = '10'
    family = MONOMIAL
    order = CONSTANT
  []
[]
[BCs]
  [left]
    type = ADDirichletBC
    variable = T
    boundary = '5'
    value = 0
  []
  [right]
    type = ADDirichletBC
    variable = T
    boundary = '8'
    value = 1
  []
[]
[Kernels]
  [conduction]
    type = ADDiffusion
    variable = T
    block = '1 2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = GapHeatConductanceTest
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
    use_displaced_mesh = true
    correct_edge_dropping = true
  []
[]
[Materials]
  [constant]
    type = ADGenericConstantMaterial
    prop_names = 'gap_conductance'
    prop_values = '.03'
    block = '1 2'
    use_displaced_mesh = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Transient
  num_steps = 5
  petsc_options_iname = '-pc_type -snes_linesearch_type'
  petsc_options_value = 'lu       basic'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_2.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = frictional_bouncing_block_action_restart_1_checkpoint_cp/0021-mesh.cpa.gz
    skip_partitioning = true
    allow_renumbering = false
  []
  uniform_refine = 0 # 1,2
  patch_update_strategy = always
[]
[Problem]
  #Note that the suffix is left off in the parameter below.
  restart_file_base = frictional_bouncing_block_action_restart_1_checkpoint_cp/0021
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        strain = FINITE
        generate_output = 'stress_xx stress_yy'
        block = '1 2'
      []
    []
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e3
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
[]
[Contact]
  [frictional]
    primary = 20
    secondary = 10
    formulation = mortar
    model = coulomb
    friction_coefficient = 0.4
    c_normal = 1.0e1
    c_tangential = 1.0e6
    generate_mortar_mesh = false
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  []
  [topy]
    type = ADFunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 20 * t) + ${offset}'
    preset = false
  []
  [leftx]
    type = ADFunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = '2e-2 * t'
    # function = '0'
    preset = false
  []
[]
[Executioner]
  type = Transient
  end_time = 5.5
  start_time = 5.25
  dt = 0.25 # 0.1 for finer meshes (uniform_refine)
  dtmin = .01
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-13                   1e-5'
  l_max_its = 30
  nl_max_its = 40
  line_search = 'basic'
  snesmf_reuse_base = false
  nl_abs_tol = 1e-9
  nl_rel_tol = 1e-9
  l_tol = 1e-07 # Tightening l_tol can help with friction
[]
[Debug]
  show_var_residual_norms = true
[]
[VectorPostprocessors]
  [cont_press]
    type = NodalValueSampler
    variable = frictional_normal_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
  [friction]
    type = NodalValueSampler
    variable = frictional_tangential_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
[]
[Outputs]
  exodus = true
  execute_on = 'final'
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [num_l]
    type = NumLinearIterations
  []
  [contact]
    type = ContactDOFSetSize
    variable = frictional_normal_lm
    subdomain = 'frictional_secondary_subdomain'
    execute_on = 'nonlinear timestep_end'
  []
[]
(test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = square.e
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/block_deletion_generator/block_deletion_test11.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = pyramid.e
  []
  [sbb2]
    type = SubdomainBoundingBoxGenerator
    input = fmg
    block_id = 2
    bottom_left = '-0.5 -0.5 -0.5'
    top_right = '0.5 0.5 0.5'
  []
  [swiss_cheese2]
    type = BlockDeletionGenerator
    block = 2
    input = 'sbb2'
  []
  [sbb3]
    type = SubdomainBoundingBoxGenerator
    input = swiss_cheese2
    block_id = 3
    bottom_left = '-5 -5 -3'
    top_right = '-2 -2 -1'
  []
  [swiss_cheese3]
    type = BlockDeletionGenerator
    block = 3
    input = 'sbb3'
  []
  [sbb4]
    type = SubdomainBoundingBoxGenerator
    input = swiss_cheese3
    block_id = 4
    bottom_left = '-1 2 -2'
    top_right = '1 5 0'
  []
  [swiss_cheese4]
    type = BlockDeletionGenerator
    block = 4
    input = 'sbb4'
  []
  [sbb5]
    type = OrientedSubdomainBoundingBoxGenerator
    input = swiss_cheese4
    block_id = 5
    center = '2.4 -1.4 0.4'
    height = 3
    length = 8
    length_direction = '-2 1 -1'
    width = 3
    width_direction = '1 2 0'
  []
  [swiss_cheese5]
    type = BlockDeletionGenerator
    block = 5
    input = 'sbb5'
  []
  [sbb6]
    type = OrientedSubdomainBoundingBoxGenerator
    input = swiss_cheese5
    block_id = 6
    center = '-1 0.4 2.2'
    height = 1
    length = 8
    length_direction = '2 -1 -1'
    width = 1
    width_direction = '1 2 0'
  []
  [swiss_cheese6]
    type = BlockDeletionGenerator
    block = 6
    input = 'sbb6'
  []
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [dt]
    type = TimeDerivative
    variable = u
  []
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [top]
    type = DirichletBC
    variable = u
    boundary = top
    value = 1
  []
[]
[Executioner]
  type = Transient
  start_time = 0
  end_time = 100
  dt = 100
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix.i)
[Mesh]
  [iga_file]
    type = FileMeshGenerator
    file = coreform_geom_8.e
    constraint_matrix = geom_8_extraction_op.m
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = iga_file
    normals = '-1 0 0
               1 0 0'
    fixed_normal = true
    new_boundary = 'left right'
  []
[]
[Variables]
  [u]
    order = FIRST
    family = LAGRANGE
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [left]
    type = PenaltyDirichletBC
    penalty = 1e9
    variable = u
    boundary = 'left'
    value = 0
  []
  [right]
    type = PenaltyDirichletBC
    penalty = 1e9
    variable = u
    boundary = 'right'
    value = 1
  []
[]
[Executioner]
  type = Steady
  # Preconditioned norms to avoid penalty-confused linear "convergence"
  petsc_options_iname = '-ksp_norm_type'
  petsc_options_value = 'preconditioned'
  # A much tighter nonlinear tolerance to avoid penalty-confused
  # nonlinear "convergence"
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-50
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_dirichlet.i)
# This input file tests whether we can converge to the semi-analytical
# solution for flow in a 2D wedge.
[GlobalParams]
  gravity = '0 0 0'
  # Params used by the WedgeFunction for computing the exact solution.
  # The value of K is only required for comparing the pressure to the
  # exact solution, and is computed by the associated jeffery_hamel.py
  # script.
  alpha_degrees = 15
  Re = 30
  K = -9.78221333616
  f = f_theta
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    # file = wedge_4x6.e
    file = wedge_8x12.e
    # file = wedge_16x24.e
    # file = wedge_32x48.e
    # file = wedge_64x96.e
  []
  [./corner_node]
    # Pin is on the centerline of the channel on the left-hand side of
    # the domain at r=1.  If you change the domain, you will need to
    # update this pin location for the pressure exact solution to
    # work.
    type = ExtraNodesetGenerator
    new_boundary = pinned_node
    coord = '1 0'
    input = file
  [../]
[]
[Variables]
  [./vel_x]
    order = SECOND
    family = LAGRANGE
  [../]
  [./vel_y]
    order = SECOND
    family = LAGRANGE
  [../]
  [./p]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./mass]
    type = INSMass
    variable = p
    u = vel_x
    v = vel_y
    pressure = p
  [../]
  [./x_momentum_time]
    type = INSMomentumTimeDerivative
    variable = vel_x
  [../]
  [./x_momentum_space]
    type = INSMomentumLaplaceForm
    variable = vel_x
    u = vel_x
    v = vel_y
    pressure = p
    component = 0
  [../]
  [./y_momentum_time]
    type = INSMomentumTimeDerivative
    variable = vel_y
  [../]
  [./y_momentum_space]
    type = INSMomentumLaplaceForm
    variable = vel_y
    u = vel_x
    v = vel_y
    pressure = p
    component = 1
  [../]
[]
[BCs]
  [./vel_x_no_slip]
    type = DirichletBC
    variable = vel_x
    boundary = 'top_wall bottom_wall'
    value = 0.0
  [../]
  [./vel_y_no_slip]
    type = DirichletBC
    variable = vel_y
    boundary = 'top_wall bottom_wall'
    value = 0.0
  [../]
  [./vel_x_inlet]
    type = FunctionDirichletBC
    variable = vel_x
    boundary = 'inlet outlet'
    function = 'vel_x_exact'
  [../]
  [./vel_y_inlet]
    type = FunctionDirichletBC
    variable = vel_y
    boundary = 'inlet outlet'
    function = 'vel_y_exact'
  [../]
  [./pressure_pin]
    type = DirichletBC
    variable = p
    boundary = 'pinned_node'
    value = 0
  [../]
[]
[Materials]
  [./const]
    type = GenericConstantMaterial
    block = 1
    prop_names = 'rho mu'
    prop_values = '1  1'
  [../]
[]
[Preconditioning]
  [./SMP_PJFNK]
    type = SMP
    full = true
    solve_type = NEWTON
  [../]
[]
[Executioner]
  type = Transient
  dt = 1.e-2
  dtmin = 1.e-2
  num_steps = 5
  petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
  petsc_options_value = '300                bjacobi  ilu          4'
  line_search = none
  nl_rel_tol = 1e-13
  nl_abs_tol = 1e-11
  nl_max_its = 10
  l_tol = 1e-6
  l_max_its = 300
[]
[Outputs]
  exodus = true
[]
[Functions]
  [./f_theta]
    # Non-dimensional solution values f(eta), 0 <= eta <= 1 for
    # alpha=15 deg, Re=30.  Note: this introduces an input file
    # ordering dependency: this Function must appear *before* the two
    # functions below which use it since apparently proper dependency
    # resolution is not done in this scenario.
    type = PiecewiseLinear
    data_file = 'f.csv'
    format = 'columns'
  [../]
  [./vel_x_exact]
    type = WedgeFunction
    var_num = 0
    mu = 1
    rho = 1
  [../]
  [./vel_y_exact]
    type = WedgeFunction
    var_num = 1
    mu = 1
    rho = 1
  [../]
  [./p_exact]
    type = WedgeFunction
    var_num = 2
    mu = 1
    rho = 1
  [../]
[]
[Postprocessors]
  [./vel_x_L2_error]
    type = ElementL2Error
    variable = vel_x
    function = vel_x_exact
    execute_on = 'initial timestep_end'
  [../]
  [./vel_y_L2_error]
    type = ElementL2Error
    variable = vel_y
    function = vel_y_exact
    execute_on = 'initial timestep_end'
  [../]
  [./p_L2_error]
    type = ElementL2Error
    variable = p
    function = p_exact
    execute_on = 'initial timestep_end'
  [../]
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/1d.i)
# 1D strain controlled test
[GlobalParams]
  displacements = 'disp_x'
  large_kinematics = false
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '1d.exo'
  []
  [ss]
    type = SideSetsFromPointsGenerator
    input = base
    points = '-1 0 0
               7 0 0'
    new_boundary = 'left right'
  []
[]
[Variables]
  [disp_x]
  []
  [hvar]
    family = SCALAR
    order = FIRST
  []
[]
[AuxVariables]
  [sxx]
    family = MONOMIAL
    order = CONSTANT
  []
  [exx]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [sxx]
    type = RankTwoAux
    variable = sxx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [exx]
    type = RankTwoAux
    variable = exx
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 0
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
[]
[Functions]
  [func_stress]
    type = ParsedFunction
    expression = '1800*t'
  []
  [func_strain]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
[]
[BCs]
  [Periodic]
    [all]
      variable = disp_x
      auto_direction = 'x'
    []
  []
  [centerfix_x]
    type = DirichletBC
    boundary = "fixme"
    variable = disp_x
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [sxx]
    type = ElementAverageValue
    variable = sxx
    execute_on = 'initial timestep_end'
  []
  [exx]
    type = ElementAverageValue
    variable = exx
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = default
  automatic_scaling = true
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 15
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-8
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  exodus = false
  csv = true
[]
(test/tests/meshgenerators/mesh_extruder_generator/extruder_tri.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = ellipse_tri.e
  []
  [extrude]
    type = MeshExtruderGenerator
    input = file
    num_layers = 20
    extrusion_vector = '0 0 5'
    bottom_sideset = '2'
    top_sideset = '4'
  []
[]
[Variables]
  active = 'u'
  [u]
    order = FIRST
    family = LAGRANGE
  []
[]
[Kernels]
  active = 'diff'
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [bottom]
    type = DirichletBC
    variable = u
    boundary = 2
    value = 0
  []
  [top]
    type = DirichletBC
    variable = u
    boundary = 4
    value = 1
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  file_base = out_tri
  exodus = true
[]
[Debug]
  show_actions = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_existing_UOs.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[MortarGapHeatTransfer]
  [mortar_heat_transfer]
   temperature = temp
   boundary = 100
   use_displaced_mesh = true
   primary_boundary = 100
   secondary_boundary = 101
   user_created_gap_flux_models = 'radiation_uo conduction_uo'
  []
[]
[UserObjects]
  [radiation_uo]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
  [conduction_uo]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 0.02
    use_displaced_mesh = true
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  csv = true
  [exodus]
    type = Exodus
    show = 'temp'
  []
[]
(test/tests/mortar/continuity-2d-non-conforming/soln-continuity-pg.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
    order = FIRST
  []
  [lambda]
    block = '10'
    order = FIRST
    use_dual = true
  []
[]
[AuxVariables]
  [aux_lm]
    block = '10'
    order = FIRST
    use_dual = false
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
    use_petrov_galerkin = true
    aux_lm = aux_lm
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step13_restart/step13b_initialization_from_exodus.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'step13a_base_calc_out.e'
    use_for_exodus_restart = true
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
    initial_from_file_var = 'T'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = 1050
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = 1050
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = 875
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Transient
  start_time = '${units 2 day -> s}'
  num_steps = 6
  dt = '${units 12 h -> s}'
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step12_physics/step12.i)
cp_water_multiplier = 5e-2
mu_multiplier = 1
# Real facility uses forced convection to cool the water tank at full power
# Need to lower power for natural convection so concrete doesn't get too hot.
power = '${fparse 5e4 / 144 / 2}'
# Coupling
h_water = 600
[GlobalParams]
  # This parameter is used in numerous objects. It is often
  # best to define it here to avoid missing it in an object
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step11_multiapps/mesh2d_coarse_in.e'
  []
  uniform_refine = 1
[]
[Problem]
  nl_sys_names = 'nl0 flow'
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Physics]
  [HeatConduction]
    [FiniteElement]
      [concrete]
        block = 'concrete_hd concrete Al'
        temperature_name = "T"
        system_names = 'nl0'
        preconditioning = 'none'
        # Solve for steady state
        # It takes a while to heat up concrete
        initial_temperature = 300
        transient = false
        # Heat conduction boundary conditions can be defined
        # inside the HeatConduction physics block
        fixed_temperature_boundaries = 'ground'
        boundary_temperatures = '300'
        heat_flux_boundaries = 'inner_cavity_solid'
        # 50 kW from radiation, using real surface
        boundary_heat_fluxes = '${power}'
        fixed_convection_boundaries = "water_boundary_inwards air_boundary"
        fixed_convection_T_fluid = "T_fluid 300"
        fixed_convection_htc = "${h_water} 10"
      []
    []
  []
  [SolidMechanics]
    [QuasiStatic]
      [concrete]
        # This block adds all of the proper Kernels, strain calculators, and Variables
        # for Solid Mechanics in the correct coordinate system (autodetected)
        add_variables = true
        strain = FINITE
        eigenstrain_names = eigenstrain
        use_automatic_differentiation = true
        generate_output = 'vonmises_stress elastic_strain_xx elastic_strain_yy strain_xx strain_yy'
        block = 'concrete_hd concrete Al'
      []
    []
  []
  [NavierStokes]
    [Flow]
      [water]
        block = 'water'
        system_names = 'flow'
        compressibility = 'incompressible'
        initial_velocity = '1e-5 1e-5'
        initial_pressure = '1e5'
        # p only appears in a gradient term, and thus could be offset by any constant
        # We pin the pressure to avoid having this nullspace
        pin_pressure = true
        pinned_pressure_type = POINT-VALUE
        pinned_pressure_point = '1 3 0'
        pinned_pressure_value = '1e5'
        gravity = '0 -9.81 0'
        boussinesq_approximation = true
        ref_temperature = 300
        wall_boundaries = 'water_boundary inner_cavity_water'
        momentum_wall_types = 'noslip noslip'
      []
    []
    [FluidHeatTransfer]
      [water]
        block = 'water'
        system_names = 'flow'
        initial_temperature = 300
        # This is a rough coupling to heat conduction
        energy_wall_types = 'convection heatflux'
        energy_wall_functors = 'T:${h_water} ${power}'
        energy_scaling = 1e-5
      []
    []
    [Turbulence]
      [mixing-length]
        block = 'water'
        turbulence_handling = 'mixing-length'
        coupled_flow_physics = 'water'
        fluid_heat_transfer_physics = 'water'
        system_names = 'flow'
        mixing_length_walls = 'water_boundary inner_cavity_water'
        mixing_length_aux_execute_on = 'initial'
      []
    []
  []
[]
# These terms are not part of any Physics, yet!
[Kernels]
  [gravity]
    type = ADGravity
    variable = 'disp_y'
    value = '-9.81'
    block = 'concrete_hd concrete Al'
  []
[]
# The solid mechanics boundary conditions are defined outside the physics
[BCs]
  [hold_ground_x]
    type = DirichletBC
    variable = disp_x
    boundary = ground
    value = 0
  []
  [hold_ground_y]
    type = DirichletBC
    variable = disp_y
    boundary = ground
    value = 0
  []
  [symmetry_center]
    type = DirichletBC
    variable = disp_x
    boundary = 'symmetry'
    value = 0
  []
[]
[FunctorMaterials]
  # Materials for fluid flow
  [water]
    type = ADGenericFunctorMaterial
    block = 'water'
    prop_names = 'rho    k     cp      mu alpha_wall alpha'
    prop_values = '955.7 0.6 ${fparse cp_water_multiplier * 4181} ${fparse 7.98e-4 * mu_multiplier} 30 2e-4'
  []
[]
[Materials]
  # Materials for heat conduction
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = 'concrete_hd'
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = 'concrete'
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = 'Al'
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
  # NOTE: This handles thermal expansion by coupling to the displacements
  [density_concrete_hd]
    type = ADDensity
    block = 'concrete_hd'
    density = '3524' # kg / m3
  []
  [density_concrete]
    type = ADDensity
    block = 'concrete'
    density = '2403' # kg / m3
  []
  [density_Al]
    type = ADDensity
    block = 'Al'
    density = '2270' # kg / m3
  []
  # Materials for solid mechanics
  [elasticity_tensor_concrete_hd]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 2.75e9 # (Pa)
    poissons_ratio = 0.15
    block = 'concrete_hd'
  []
  [elasticity_tensor_concrete]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 30e9 # (Pa)
    poissons_ratio = 0.2
    block = 'concrete'
  []
  [elasticity_tensor_Al]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 68e9 # (Pa)
    poissons_ratio = 0.36
    block = 'Al'
  []
  [elastic_stress]
    type = ADComputeFiniteStrainElasticStress
    block = 'concrete_hd concrete Al'
  []
  [thermal_strain_concrete_hd]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 1e-5 # 1/K
    block = 'concrete_hd'
  []
  [thermal_strain_concrete]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 1e-5 # 1/K
    block = 'concrete'
  []
  [thermal_strain_Al]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300 # arbitrary value
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 2.4e-5 # 1/K
    block = 'Al'
  []
[]
[Executioner]
  type = Transient
  # Time stepping parameters
  start_time = -1
  end_time = ${units 4 h -> s}
  dtmax = 100
  [TimeStepper]
    type = FunctionDT
    function = 'if(t<0.1, 0.1, t)'
  []
  # Solver parameters
  solve_type = NEWTON
  automatic_scaling = true
  off_diagonals_in_auto_scaling = true
  line_search = none
  # Tolerances
  # Navier Stokes natural circulation will only converge so far
  # TODO: use multiple convergence objects for each system
  nl_abs_tol = 1.5e-6
  nl_max_its = 15
[]
[Preconditioning]
  [thermomecha]
    type = SMP
    nl_sys = 'nl0'
    petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
    petsc_options_value = 'hypre boomeramg 500'
  []
  [flow]
    type = SMP
    nl_sys = 'flow'
    petsc_options_iname = '-pc_type -pc_factor_shift_type'
    petsc_options_value = 'lu NONZERO'
  []
[]
[Outputs]
  csv = true
  exodus = true
  [displaced]
    type = Exodus
    use_displaced = true
  []
[]
[Postprocessors]
  # Useful information
  [T_fluid_average]
    type = ElementAverageValue
    variable = 'T_fluid'
    block = 'water'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [T_solid_average]
    type = ElementAverageValue
    variable = 'T'
    block = 'concrete_hd concrete'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [max_dispx]
    type = ElementExtremeValue
    variable = 'disp_x'
    value_type = 'max_abs'
    block = 'concrete_hd concrete'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [max_dispy]
    type = ElementExtremeValue
    variable = 'disp_y'
    value_type = 'max_abs'
    block = 'concrete_hd concrete'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [max_Tsolid]
    type = ElementExtremeValue
    variable = 'T'
    block = 'concrete_hd concrete'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [max_Tfluid]
    type = ElementExtremeValue
    variable = 'T_fluid'
    block = 'water'
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
(test/tests/transfers/multiapp_interpolation_transfer/fromrestrictedsub_sub.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2subdomains.e
  []
  [boundary_fuel_side]
    input = file
    type = SubdomainBoundingBoxGenerator
    block_id = 2
    bottom_left = '0.2 0 0'
    top_right = '0.3 1 0'
  []
[]
[Variables]
  [u]
  []
[]
[AuxVariables]
  [elemental]
    block = '2'
    order = CONSTANT
    family = MONOMIAL
  []
  [nodal]
    block = '2'
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[AuxKernels]
  [elemaux]
    type = CoupledAux
    variable = elemental
    coupled = u
    block = '2'
  []
  [nodaux]
    type = CoupledAux
    variable = nodal
    coupled = u
    block = '2'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  []
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  []
[]
[Executioner]
  type = Transient
  num_steps = 1
  dt = 1
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/materials/ergun/ergun.i)
# This file simulates flow of fluid in a porous elbow for the purpose of verifying
# correct implementation of the various different solution variable sets. This input
# tests correct implementation of the primitive superficial variable set. Flow enters on the top
# and exits on the right. Because the purpose is only to test the equivalence of
# different equation sets, no solid energy equation is included.
porosity_left = 0.4
porosity_right = 0.6
pebble_diameter = 0.06
mu = 1.81e-5 # This has been increased to avoid refining the mesh
M = 28.97e-3
R = 8.3144598
# inlet mass flowrate, kg/s
mdot = -10.0
# inlet mass flux (superficial)
mflux_in_superficial = ${fparse mdot / (pi * 0.5 * 0.5)}
# inlet mass flux (interstitial)
mflux_in_interstitial = ${fparse mflux_in_superficial / porosity_left}
p_initial = 201325.0
T_initial = 300.0
rho_initial = ${fparse p_initial / T_initial * M / R}
vel_y_initial = ${fparse mflux_in_interstitial / rho_initial}
vel_x_initial = 0.0
superficial_vel_y_initial = ${fparse mflux_in_superficial / rho_initial}
superficial_vel_x_initial = 1e-12
# Computation parameters
velocity_interp_method = 'rc'
advected_interp_method = 'upwind'
# ==============================================================================
# GEOMETRY AND MESH
# ==============================================================================
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'ergun_in.e'
  []
  coord_type = RZ
[]
[UserObjects]
  [rc]
    type = PINSFVRhieChowInterpolator
    u = superficial_vel_x
    v = superficial_vel_y
    pressure = pressure
    porosity = porosity
  []
[]
[GlobalParams]
  porosity = porosity
  pebble_diameter = ${pebble_diameter}
  fp = fp
  # rho for the kernels. Must match fluid property!
  rho = ${rho_initial}
  fv = true
  velocity_interp_method = ${velocity_interp_method}
  advected_interp_method = ${advected_interp_method}
  # behavior at time of test creation
  two_term_boundary_expansion = false
  rhie_chow_user_object = 'rc'
[]
# ==============================================================================
# VARIABLES AND KERNELS
# ==============================================================================
[Variables]
  [pressure]
    type = INSFVPressureVariable
    initial_condition = ${p_initial}
  []
  [superficial_vel_x]
    type = PINSFVSuperficialVelocityVariable
    initial_condition = ${superficial_vel_x_initial}
  []
  [superficial_vel_y]
    type = PINSFVSuperficialVelocityVariable
    initial_condition = ${superficial_vel_y_initial}
  []
[]
[FVKernels]
  # Mass Equation.
  [mass]
    type = PINSFVMassAdvection
    variable = 'pressure'
  []
  # Momentum x component equation.
  [vel_x_time]
    type = PINSFVMomentumTimeDerivative
    variable = 'superficial_vel_x'
    momentum_component = 'x'
  []
  [vel_x_advection]
    type = PINSFVMomentumAdvection
    variable = 'superficial_vel_x'
    momentum_component = 'x'
  []
  [vel_x_viscosity]
    type = PINSFVMomentumDiffusion
    variable = 'superficial_vel_x'
    momentum_component = 'x'
    mu = 'mu'
  []
  [u_pressure]
    type = PINSFVMomentumPressure
    variable = 'superficial_vel_x'
    pressure = pressure
    momentum_component = 'x'
  []
  [u_friction]
    type = PINSFVMomentumFriction
    variable = 'superficial_vel_x'
    Darcy_name = 'Darcy_coefficient'
    Forchheimer_name = 'Forchheimer_coefficient'
    momentum_component = 'x'
    speed = speed
    mu = 'mu'
  []
  # Momentum y component equation.
  [vel_y_time]
    type = PINSFVMomentumTimeDerivative
    variable = 'superficial_vel_y'
    momentum_component = 'y'
  []
  [vel_y_advection]
    type = PINSFVMomentumAdvection
    variable = 'superficial_vel_y'
    momentum_component = 'y'
  []
  [vel_y_viscosity]
    type = PINSFVMomentumDiffusion
    variable = 'superficial_vel_y'
    momentum_component = 'y'
    mu = 'mu'
  []
  [v_pressure]
    type = PINSFVMomentumPressure
    variable = 'superficial_vel_y'
    pressure = pressure
    momentum_component = 'y'
  []
  [v_friction]
    type = PINSFVMomentumFriction
    variable = 'superficial_vel_y'
    Darcy_name = 'Darcy_coefficient'
    Forchheimer_name = 'Forchheimer_coefficient'
    momentum_component = 'y'
    mu = 'mu'
    speed = speed
  []
  [gravity]
    type = PINSFVMomentumGravity
    variable = 'superficial_vel_y'
    gravity = '0 -9.81 0'
    momentum_component = 'y'
  []
[]
# ==============================================================================
# AUXVARIABLES AND AUXKERNELS
# ==============================================================================
[AuxVariables]
  [T_fluid]
    initial_condition = ${T_initial}
    order = CONSTANT
    family = MONOMIAL
  []
  [vel_x]
    initial_condition = ${fparse vel_x_initial}
    order = CONSTANT
    family = MONOMIAL
  []
  [vel_y]
    initial_condition = ${fparse vel_y_initial}
    order = CONSTANT
    family = MONOMIAL
  []
  [porosity_out]
    type = MooseVariableFVReal
  []
[]
[AuxKernels]
  [vel_x]
    type = FunctorAux
    variable = vel_x
    functor = vel_x_mat
  []
  [vel_y]
    type = FunctorAux
    variable = vel_y
    functor = vel_y_mat
  []
  [porosity_out]
    type = FunctorAux
    variable = porosity_out
    functor = porosity
  []
[]
# ==============================================================================
# FLUID PROPERTIES, MATERIALS AND USER OBJECTS
# ==============================================================================
[FluidProperties]
  [fp]
    type = IdealGasFluidProperties
    k = 0.0
    mu = ${mu}
    gamma = 1.4
    molar_mass = ${M}
  []
[]
[FunctorMaterials]
  [enthalpy]
    type = INSFVEnthalpyMaterial
    temperature = 'T_fluid'
  []
  [speed]
    type = PINSFVSpeedFunctorMaterial
    superficial_vel_x = 'superficial_vel_x'
    superficial_vel_y = 'superficial_vel_y'
    porosity = porosity
    vel_x = vel_x_mat
    vel_y = vel_y_mat
  []
  [kappa]
    type = FunctorKappaFluid
  []
  [const_Fdrags_mat]
    type = FunctorErgunDragCoefficients
    porosity = porosity
  []
  [fluidprops]
    type = GeneralFunctorFluidProps
    mu_rampdown = mu_func
    porosity = porosity
    characteristic_length = ${pebble_diameter}
    T_fluid = 'T_fluid'
    pressure = 'pressure'
    speed = 'speed'
  []
[]
d = 0.05
[Functions]
  [mu_func]
    type = PiecewiseLinear
    x = '1 3 5 10 15 20'
    y = '1e5 1e4 1e3 1e2 1e1 1'
  []
  [real_porosity_function]
    type = ParsedFunction
    expression = 'if (x < 0.6 - ${d}, ${porosity_left}, if (x > 0.6 + ${d}, ${porosity_right},
        (x-(0.6-${d}))/(2*${d})*(${porosity_right}-${porosity_left}) + ${porosity_left}))'
  []
  [porosity]
    type = ParsedFunction
    expression = 'if (x < 0.6 - ${d}, ${porosity_left}, if (x > 0.6 + ${d}, ${porosity_right},
        (x-(0.6-${d}))/(2*${d})*(${porosity_right}-${porosity_left}) + ${porosity_left}))'
  []
[]
# ==============================================================================
# BOUNDARY CONDITIONS
# ==============================================================================
[FVBCs]
  [outlet_p]
    type = INSFVOutletPressureBC
    variable = 'pressure'
    function = ${p_initial}
    boundary = 'right'
  []
  ## No or Free slip BC
  [free-slip-wall-x]
    type = INSFVNaturalFreeSlipBC
    boundary = 'bottom wall_1 wall_2 left'
    variable = superficial_vel_x
    momentum_component = 'x'
  []
  [free-slip-wall-y]
    type = INSFVNaturalFreeSlipBC
    boundary = 'bottom wall_1 wall_2 left'
    variable = superficial_vel_y
    momentum_component = 'y'
  []
  ## Symmetry
  [symmetry-x]
    type = PINSFVSymmetryVelocityBC
    boundary = 'left'
    variable = superficial_vel_x
    u = superficial_vel_x
    v = superficial_vel_y
    mu = 'mu'
    momentum_component = 'x'
  []
  [symmetry-y]
    type = PINSFVSymmetryVelocityBC
    boundary = 'left'
    variable = superficial_vel_y
    u = superficial_vel_x
    v = superficial_vel_y
    mu = 'mu'
    momentum_component = 'y'
  []
  [symmetry-p]
    type = INSFVSymmetryPressureBC
    boundary = 'left'
    variable = 'pressure'
  []
  ## inlet
  [inlet_vel_x]
    type = INSFVInletVelocityBC
    variable = 'superficial_vel_x'
    functor = ${superficial_vel_x_initial}
    boundary = 'top'
  []
  [inlet_vel_y]
    type = INSFVInletVelocityBC
    variable = 'superficial_vel_y'
    functor = ${superficial_vel_y_initial}
    boundary = 'top'
  []
[]
# ==============================================================================
# EXECUTION PARAMETERS
# ==============================================================================
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -ksp_gmres_restart'
  petsc_options_value = 'asm      lu           NONZERO                   200'
  line_search = 'none'
  # Problem time parameters
  dtmin = 0.01
  dtmax = 2000
  end_time = 3000
  # must be the same as the fluid
  # Iterations parameters
  l_max_its = 50
  l_tol     = 1e-8
  nl_max_its = 25
  # nl_rel_tol = 5e-7
  nl_abs_tol = 2e-7
  # Automatic scaling
  automatic_scaling = true
  verbose = true
  [TimeStepper]
    type = IterationAdaptiveDT
    dt                 = 0.025
    cutback_factor     = 0.5
    growth_factor      = 2.0
  []
  # Steady state detection.
  steady_state_detection = true
  steady_state_tolerance = 1e-7
  steady_state_start_time = 400
[]
# ==============================================================================
# POSTPROCESSORS DEBUG AND OUTPUTS
# ==============================================================================
[Postprocessors]
  [mass_flow_in]
    type = VolumetricFlowRate
    boundary = 'top'
    vel_x = 'superficial_vel_x'
    vel_y = 'superficial_vel_y'
    advected_quantity = ${rho_initial}
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [mass_flow_out]
    type = VolumetricFlowRate
    boundary = 'right'
    vel_x = 'superficial_vel_x'
    vel_y = 'superficial_vel_y'
    advected_quantity = ${rho_initial}
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [p_in]
    type = SideAverageValue
    variable = pressure
    boundary = 'top'
  []
  [dP]
    type = LinearCombinationPostprocessor
    pp_names = 'p_in'
    pp_coefs = '1.0'
    b = ${fparse -p_initial}
  []
[]
[Outputs]
  exodus = true
  print_linear_residuals = false
[]
(test/tests/quadrature/qweights/positive_qweights.i)
[Mesh]
  [./square]
    type = FileMeshGenerator
    file = cube.e
  [../]
[]
[Variables]
  [u][]
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [heat_source_fuel]
    type = CoupledForce
    variable = u
    v = power_density
  []
[]
[BCs]
  [robin]
    type = RobinBC
    variable = u
    boundary = '1 2 3 4 5 6'
  []
[]
[AuxVariables]
  [power_density]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [source]
    type = ParsedAux
    variable = power_density
    use_xyzt = true
    expression = 'if(x>0.1,100,1)'
  []
[]
[Executioner]
  type = Steady
  [./Quadrature]
    allow_negative_qweights = false
  [../]
  solve_type = 'NEWTON'
  petsc_options_iname = "-pc_type"
  petsc_options_value = "hypre"
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_tight_slip.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
  [dual_var]
    use_dual = true
    block = '10001'
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = friction_uo
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'basic'
  nl_abs_tol = 1e-13
  nl_rel_tol = 1e-11
  nl_max_its = 75
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.1 # 3.5
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e5
    secondary_variable = disp_x
    friction_coefficient = 0.4
    penetration_tolerance = 1e-7
    slip_tolerance = 1e-8
    penalty_friction = 1e6
    penalty_multiplier = 10
    use_physical_gap = true
    aux_lm = dual_var
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(modules/solid_mechanics/test/tests/shell/static/scordelis_lo_roof_shell.i)
# This model is a widely used benchmark model denoted the Scordelis-Lo roof.
# The maximum z-deformation is compared with the value given in "Proposed Standard Set of Problems to Test Finite Element Accuracy, Finite Elements in Analysis and Design, 1985".
# Based on the existing analytical Solutions, maximum deflection of the roof should be 0.3086
# The model results in a maximum deflection of 0.3090 (assuming a 15*15 structured mesh)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = scordelis_lo_roof_shell.msh
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[BCs]
  [simply_support_y]
    type = ADDirichletBC
    variable = disp_x
    boundary = 'back'
    value = 0.0
  []
  [simply_support_z]
    type = ADDirichletBC
    variable = disp_z
    boundary = 'back'
    value = 0.0
  []
  [simply_support_x]
    type = ADDirichletBC
    variable = disp_y
    boundary = 'front'
    value = 0.0
  []
  [simply_rot_x]
    type = ADDirichletBC
    variable = rot_x
    boundary = 'front'
    value = 0.0
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  dt = 1
  end_time = 1
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
  [self_weight]
    type = ADDistributedLoadShell
    function = '90'
    variable = disp_z
    displacements = 'disp_x disp_y disp_z'
  []
[]
[Materials]
  [elasticity_tshell]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 4.32e8
    poissons_ratio = 0.0
    through_thickness_order = SECOND
  []
  [strain_shell]
    type = ADComputeIncrementalShellStrain
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.25
    through_thickness_order = SECOND
  []
  [stress_shell]
    type = ADComputeShellStress
    through_thickness_order = SECOND
  []
[]
[Postprocessors]
  [disp_z2]
    type = PointValue
    point = '-16.7 0  19.2'
    variable = disp_z
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/continuity-3d-non-conforming/continuity_penalty_sphere_hex.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = spheres_hex8.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '102'
  []
[]
[Problem]
  error_on_jacobian_nonzero_reallocation = true
[]
[Variables]
  [T]
    block = '1 2'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln_primal
    variable = T
    boundary = '1 2'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = 'x^2 + y^2 + z^2 - 6'
  []
  [exact_soln_primal]
    type = ParsedFunction
    expression = 'x^2 + y^2 + z^2'
  []
  [exact_soln_lambda]
    type = ParsedFunction
    expression = '4'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = PenaltyEqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = '12'
    secondary_subdomain = '11'
    secondary_variable = T
    correct_edge_dropping = true
    penalty_value = 1.e5
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = '201                hypre    boomeramg      6'
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [L2u]
    type = ElementL2Error
    variable = T
    function = exact_soln_primal
    execute_on = 'timestep_end'
    block = '1 2'
  []
  [h]
    type = AverageElementSize
    block = '1 2'
  []
[]
(modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [react_x]
  []
  [react_y]
  []
  [penetration]
  []
  [inc_slip_x]
  []
  [inc_slip_y]
  []
  [accum_slip_x]
  []
  [accum_slip_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [incslip_x]
    type = PenetrationAux
    variable = inc_slip_x
    quantity = incremental_slip_x
    boundary = 3
    paired_boundary = 2
  []
  [incslip_y]
    type = PenetrationAux
    variable = inc_slip_y
    quantity = incremental_slip_y
    boundary = 3
    paired_boundary = 2
  []
  [accum_slip_x]
    type = AccumulateAux
    variable = accum_slip_x
    accumulate_from_variable = inc_slip_x
    execute_on = timestep_end
  []
  [accum_slip_y]
    type = AccumulateAux
    variable = accum_slip_y
    accumulate_from_variable = inc_slip_y
    execute_on = timestep_end
  []
  [penetration]
    type = PenetrationAux
    variable = penetration
    boundary = 3
    paired_boundary = 2
  []
  [react_x]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_x'
    variable = 'react_x'
  []
  [react_y]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_y'
    variable = 'react_y'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = react_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = react_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = react_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = react_y
    boundary = 4
  []
  [penetration]
    type = NodalExtremeValue
    variable = penetration
    value_type = max
    boundary = 3
  []
  [inc_slip_x_max]
    type = NodalExtremeValue
    variable = inc_slip_x
    value_type = max
    boundary = 3
  []
  [inc_slip_x_min]
    type = NodalExtremeValue
    variable = inc_slip_x
    value_type = min
    boundary = 3
  []
  [inc_slip_y_max]
    type = NodalExtremeValue
    variable = inc_slip_y
    value_type = max
    boundary = 3
  []
  [inc_slip_y_min]
    type = NodalExtremeValue
    variable = inc_slip_y
    value_type = min
    boundary = 3
  []
  [accum_slip_x]
    type = NodalExtremeValue
    variable = accum_slip_x
    value_type = max
    boundary = 3
  []
  [accum_slip_y]
    type = NodalExtremeValue
    variable = accum_slip_y
    value_type = max
    boundary = 3
  []
  [_dt]
    type = TimestepSize
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '2 3 4 5 6 7'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15                   1e-5'
  line_search = 'none'
  nl_abs_tol = 1e-8
  start_time = 0.0
  end_time = 0.3
  l_tol = 1e-4
  dt = 0.1
  dtmin = 0.1
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3 4'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3 4'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = true
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp'
    file_base = cylinder_friction_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[Contact]
  [leftright]
    primary = 2
    secondary = 3
    model = coulomb
    formulation = penalty
    penalty = 5e9
    normalize_penalty = true
    friction_coefficient = '0.2'
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_2d.i)
# 2D with mixed conditions on stress/strain
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '2d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0'
    fixed_normal = true
    new_boundary = 'left right bottom top'
  []
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        strain = SMALL
        add_variables = true
        new_system = true
        formulation = TOTAL
        volumetric_locking_correction = false
        constraint_types = 'stress none none stress strain none none none none'
        targets = 'stress11 stress12 strain22'
        generate_output = 'pk1_stress_xx pk1_stress_xy pk1_stress_xz pk1_stress_yx pk1_stress_yy '
                          'pk1_stress_yz pk1_stress_zx pk1_stress_zy pk1_stress_zz '
                          'deformation_gradient_xx deformation_gradient_xy deformation_gradient_xz '
                          'deformation_gradient_yx deformation_gradient_yy deformation_gradient_yz '
                          'deformation_gradient_zx deformation_gradient_zy deformation_gradient_zz'
      []
    []
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '400*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '100*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_y
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix2"
    variable = disp_y
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  [out]
    type = Exodus
    file_base = '2d'
  []
[]
(test/tests/fvics/file_ic/file_restart.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = restart_from.e
    use_for_exodus_restart = true
  []
[]
[Variables]
  [u]
    type = MooseVariableFVReal
    initial_from_file_var = u
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/xyz_delaunay_generator/xyzdelaunay_with_holes_2d.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'gold/2d_cube.e'
  []
  [outer_bdy]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = "x"
    y_function = "y"
    z_function = "z+x*y*z"
  []
  [hole_1]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = ".25+.125*x"
    y_function = ".25+.125*y"
    z_function = ".25+.125*z"
  []
  [hole_2]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = ".75+.125*x"
    y_function = ".75+.125*y"
    z_function = ".75+.125*z"
  []
  [triang]
    type = XYZDelaunayGenerator
    boundary = 'outer_bdy'
    holes = 'hole_1
             hole_2'
    # Let NetGen know interior points are okay
    desired_volume = 100000
  []
[]
[Executioner]
  type = Steady
[]
[Postprocessors]
  [volume]
    type = VolumePostprocessor
  []
[]
[Problem]
  solve = false
[]
[Outputs]
  [output]
    type = CSV
    file_base = 'xyzdelaunay_with_holes_out'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i)
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the y-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  [./rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '0 90 90'
    input = file
  [../]
[]
[Functions]
  [./temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  [../]
[]
[Variables]
  [./temp]
   initial_condition = 100
  [../]
[]
[AuxVariables]
  [./gap_conductance]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./heat_conduction]
    type = HeatConduction
    variable = temp
  [../]
[]
[AuxKernels]
  [./gap_cond]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_conductance
    boundary = 2
  [../]
[]
[Materials]
  [./heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 1000000.0
  [../]
[]
[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductivity = 1
    quadrature = true
    gap_geometry_type = CYLINDER
    cylinder_axis_point_1 = '0 0 0'
    cylinder_axis_point_2 = '1 0 0'
  [../]
[]
[BCs]
  [./mid]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = temp
  [../]
  [./temp_far_right]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
  [./Quadrature]
     order = fifth
     side_order = seventh
  [../]
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [./temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  [../]
  [./temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  [../]
  [./flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  [../]
  [./flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  [../]
[]
(test/tests/meshdivisions/nested_division.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../positions/depletion_id_in.e'
    exodus_extra_element_integers = 'material_id pin_id assembly_id'
  []
  # To keep VPP output consistently ordered
  allow_renumbering = false
[]
[MeshDivisions]
  [extra_id_div_1]
    type = ExtraElementIntegerDivision
    extra_id_name = 'material_id'
  []
  [extra_id_div_2]
    type = ExtraElementIntegerDivision
    extra_id_name = 'pin_id'
  []
  [nested_div]
    type = NestedDivision
    divisions = 'extra_id_div_2 extra_id_div_1'
  []
[]
[AuxVariables]
  [div]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [mesh_div]
    type = MeshDivisionAux
    variable = div
    mesh_division = 'nested_div'
  []
[]
[VectorPostprocessors]
  [div_out]
    type = ElementValueSampler
    variable = 'div'
    sort_by = 'id'
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
(test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_interface_boundaries.i)
[Mesh]
  # See fancy_extruder_with_boundary_swap.i for details about mesh_2d.e
  [fmg]
    type = FileMeshGenerator
    file = mesh_2d.e
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = fmg
    heights = '1 2 3'
    num_layers = '1 2 1'
    direction = '0 0 1'
    bottom_boundary = '100'
    top_boundary = '200'
    subdomain_swaps = '1 11 2 12 3 13;
                       1 21 2 22 3 23;
                       1 31 2 32 3 33'
    upward_boundary_source_blocks = '1;2 3;1 2 3'
    upward_boundary_ids = '1001;2002 2003;3001 3002 3003'
    downward_boundary_source_blocks = '1 2 3;2 3;1'
    downward_boundary_ids = '1501 1502 1503;2502 2503;3501'
  []
[]
(modules/heat_transfer/test/tests/heat_conduction/2d_quadrature_gap_heat_transfer/perfect_split.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'perfect.cpa.gz'
  []
  parallel_type = distributed
[]
[Variables]
  [temp]
  []
[]
[Kernels]
  [hc]
    type = HeatConduction
    variable = temp
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = leftleft
    value = 300
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = rightright
    value = 400
  []
[]
[ThermalContact]
  [left_to_right]
    secondary = leftright
    quadrature = true
    primary = rightleft
    emissivity_primary = 0
    emissivity_secondary = 0
    variable = temp
    type = GapHeatTransfer
  []
[]
[Materials]
  [hcm]
    type = HeatConductionMaterial
    block = 'left right'
    specific_heat = 1
    thermal_conductivity = 1
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/j_integral_vtest/fgm_5.i)
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2d_paulino.e
  []
  # uniform_refine = 3
[]
[AuxVariables]
  [react_z]
  []
[]
[DomainIntegral]
  integrals = 'JIntegral InteractionIntegralKI'
  boundary = 1001
  radius_inner = '0.01 0.04 0.1 0.2'
  radius_outer = '0.01 0.04 0.1 0.2'
  crack_direction_method = CrackDirectionVector
  crack_direction_vector = '1 0 0' # is it +?
  2d = true
  axis_2d = 2
  incremental = true
  symmetry_plane = 1
  functionally_graded_youngs_modulus = elastic_mod_material_mat
  functionally_graded_youngs_modulus_crack_dir_gradient = elastic_mod_material_der_mat
  youngs_modulus = 2e6
  poissons_ratio = 0.3
  block = '1'
[]
[Physics/SolidMechanics/QuasiStatic]
  [master]
    strain = FINITE
    add_variables = true
    incremental = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx strain_yy'
    decomposition_method = EigenSolution
    planar_formulation = PLANE_STRAIN
  []
[]
[Functions]
  [parsed_load]
    type = ParsedFunction
    symbol_names = 'E1 E2 beta'
    symbol_values = '1e3 3e3 5'
    expression = '-1.0*((E1 + E2) / 2 + (E1 - E2)/2 * tanh(beta*(x+0.1)))'
  []
  [elastic_mod_material_der]
    type = ParsedFunction
    symbol_names = 'E1 E2 beta'
    symbol_values = '1e6 3e6 5'
    expression = '(E1 - E2) / 2 * beta * (1.0 - tanh(beta*(x+0.1)) * tanh(beta*(x+0.1)))'
  []
  [elastic_mod_material]
    type = ParsedFunction
    symbol_names = 'E1 E2 beta'
    symbol_values = '1e6 3e6 5'
    expression = '(E1 + E2) / 2 + (E1 - E2)/2 * tanh(beta*(x+0.1))'
  []
[]
[BCs]
  [plane_1_x]
    type = DirichletBC
    variable = disp_x
    boundary = 10001
    value = 0.0
  []
  [plane_y]
    type = DirichletBC
    variable = disp_y
    boundary = '10005 6 1' #10001
    value = 0.0
  []
  [Pressure]
    [Side1]
      boundary = 4
      function = parsed_load # BCs
    []
  []
[]
[Materials]
  [generic_materials]
    type = GenericFunctionMaterial
    prop_names = 'elastic_mod_material_mat elastic_mod_material_der_mat'
    prop_values = 'elastic_mod_material elastic_mod_material_der'
  []
  [elasticity_tensor]
    type = ComputeVariableIsotropicElasticityTensor
    youngs_modulus = elastic_mod_material_mat
    poissons_ratio = 0.3
    args = ''
  []
  [elastic_stress]
    type = ComputeFiniteStrainElasticStress
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  line_search = 'none'
  l_max_its = 50
  nl_max_its = 20
  nl_abs_tol = 1e-5
  nl_rel_tol = 1e-8
  l_tol = 1e-6
  start_time = 0.0
  dt = 1.0
  end_time = 1
  num_steps = 1
[]
[Postprocessors]
  [_dt]
    type = TimestepSize
  []
  [nl_its]
    type = NumNonlinearIterations
  []
  [lin_its]
    type = NumLinearIterations
  []
  [react_z]
    type = NodalSum
    variable = react_z
    boundary = '10005 6 1'
  []
[]
[Outputs]
  execute_on = 'timestep_end'
  csv = true
  exodus = true
[]
(test/tests/meshgenerators/smooth_mesh_generator/mesh_smoother_generator.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = concentric_circle_mesh_in.e
  []
  [./smooth]
    type = SmoothMeshGenerator
    input = fmg
    iterations = 3
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/xyz_delaunay_generator/err_xyzdelaunay_with_holes_mix.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'gold/2d_cube.e'
  []
  [outer_bdy]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = "x"
    y_function = "y"
    z_function = "z+x*y*z"
  []
  [hole_1_2d]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = ".25+.125*x"
    y_function = ".25+.125*y"
    z_function = ".25+.125*z"
  []
  [hole_1]
    type = ElementGenerator
    input = 'hole_1_2d'
    elem_type = TET4
    nodal_positions = '0 0 0
                       0 1 0
                       1 0 0
                       0 0 1'
    element_connectivity = '0 1 2 3'
  []
  [hole_2]
    type = ParsedNodeTransformGenerator
    input = fmg
    x_function = ".75+.125*x"
    y_function = ".75+.125*y"
    z_function = ".75+.125*z"
  []
  [triang]
    type = XYZDelaunayGenerator
    boundary = 'outer_bdy'
    holes = 'hole_1
             hole_2'
    # Let NetGen know interior points are okay
    desired_volume = 100000
  []
[]
(modules/contact/test/tests/bouncing-block-contact/variational-frictional-action.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
[]
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks-coarse.e
  []
  [remove]
    type = BlockDeletionGenerator
    input = file_mesh
    block = '3 4'
  []
  patch_update_strategy = iteration
[]
# [Problem]
#   type = DumpObjectsProblem
#   dump_path = Contact/contact_action
# []
[Variables]
  [disp_x]
    block = '1 2'
    scaling = 1e1
  []
  [disp_y]
    block = '1 2'
    scaling = 1e1
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[AuxVariables]
  [procid]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [procid]
    type = ProcessorIDAux
    variable = procid
  []
[]
[Contact]
  [contact_action]
    model = coulomb
    formulation = mortar
    c_normal = 1.0e-2
    c_tangential = 1.0e-1
    friction_coefficient = 0.1
    primary = 10
    secondary = 20
    normalize_c = true
    normal_lm_scaling = 1e3
    tangential_lm_scaling = 1e2
    correct_edge_dropping = true
    use_dual = false
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       NONZERO               1e-15'
  l_max_its = 30
  nl_max_its = 25
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  [exodus]
    type = Exodus
    hide = 'procid'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
(test/tests/mortar/continuity-2d-conforming/equalgradient.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-conf.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
  []
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lmx]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
  [./lmy]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[ICs]
  [./block1]
    type = FunctionIC
    variable = u
    block = 1
    function = y
  [../]
  [./block2]
    type = FunctionIC
    variable = u
    block = 2
    function = y-0.5
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./dt]
    type = TimeDerivative
    variable = u
  [../]
[]
[Constraints]
  [./cedx]
    type = EqualGradientConstraint
    secondary_variable = u
    variable = lmx
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    component = 0
  [../]
  [./cedy]
    type = EqualGradientConstraint
    secondary_variable = u
    variable = lmy
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    component = 1
  [../]
[]
[BCs]
  [./all]
    type = DiffusionFluxBC
    variable = u
    boundary = '2 4 100 101'
  [../]
  [./boundary]
    type = DirichletBC
    boundary = 1
    variable = u
    value = 0.0
  [../]
  [./top]
    type = FunctionDirichletBC
    boundary = 3
    variable = u
    function = 0.5-t
  [../]
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Transient
  nl_rel_tol = 1e-11
  l_tol = 1e-10
  l_max_its = 10
  dt = 0.05
  num_steps = 3
[]
[Outputs]
  exodus = true
  print_linear_residuals = false
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_backup.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 0.1 0.2'
    y = '0. -0.020 0.0'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = friction_uo
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 1300
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.2 # 3.5
  dt = 0.1
  dtmin = 0.001
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure  normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyWeightedGapUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e7
    penalty_multiplier = 10
    penetration_tolerance = 1e-12
    use_physical_gap = true
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
[]
(modules/navier_stokes/test/tests/finite_element/pins/expansion-channel/expansion-channel-slip-wall.i)
# This is an example showing the conservative form with combined velocity inlet condition,
# pressure outlet condition and slip wall boundary condition.
[GlobalParams]
  gravity = '0 -9.8 0'
  order = FIRST
  family = LAGRANGE
  u = vel_x
  v = vel_y
  pressure = p
  temperature = T
  porosity = porosity
  eos = eos
  conservative_form = true
  p_int_by_parts = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = expansion-channel.e
  []
  [add_corners]
    type = ExtraNodesetGenerator
    input = file
    new_boundary = 'corners'
    coord = '-0.05 -0.5 0; 0.05 -0.5 0; -0.1 0.5 0; 0.1 0.5 0'
  []
[]
[NodalNormals]
  # boundaries 3 (left) and 4 (right) are walls
  boundary = '3 4'
  corner_boundary = 'corners'
[]
[FluidProperties]
  [eos]
    type = SimpleFluidProperties
    density0 = 100              # kg/m^3
    thermal_expansion = 0.001   # K^{-1}
    cp =  100
    viscosity = 0.1             # Pa-s, Re=rho*u*L/mu = 100*1*0.1/0.1 = 100
    thermal_conductivity = 72
  []
[]
[Variables]
  # velocities
  [vel_x]
    scaling = 1e-1
    initial_condition = 0
  []
  [vel_y]
    scaling = 1e-2
    initial_condition = 1
  []
  # Pressure
  [p]
    initial_condition = 1.01e5
  []
  # Temperature
  [T]
    scaling = 1e-4
    initial_condition = 630
  []
[]
[AuxVariables]
  [rho]
    initial_condition = 77.0
  []
  [porosity]
    initial_condition = 0.6
  []
  [vol_heat]
    initial_condition = 1e3
  []
[]
[Materials]
  [mat]
    type = PINSFEMaterial
    alpha = 1e3
    beta = 100
  []
[]
[Kernels]
  # mass balance (continuity) equation
  [mass_time]
    type = PINSFEFluidPressureTimeDerivative
    variable = p
  []
  [mass_space]
    type = INSFEFluidMassKernel
    variable = p
  []
  # momentum equations for x- and y- velocities
  [x_momentum_time]
    type = PINSFEFluidVelocityTimeDerivative
    variable = vel_x
  []
  [x_momentum_space]
    type = INSFEFluidMomentumKernel
    variable = vel_x
    component = 0
  []
  [y_momentum_time]
    type = PINSFEFluidVelocityTimeDerivative
    variable = vel_y
  []
  [y_momentum_space]
    type = INSFEFluidMomentumKernel
    variable = vel_y
    component = 1
  []
  # fluid energy equation
  [temperature_time]
    type = PINSFEFluidTemperatureTimeDerivative
    variable = T
  []
  [temperature_space]
    type = INSFEFluidEnergyKernel
    variable = T
    power_density = vol_heat
  []
[]
[AuxKernels]
  [rho_aux]
    type = FluidDensityAux
    variable = rho
    p = p
    T = T
    fp = eos
  []
[]
[BCs]
  # BCs for mass equation
  # Inlet
  [mass_inlet]
    type = INSFEFluidMassBC
    variable = p
    boundary = '1'
  []
  # Outlet
  [mass_out]
    type = INSFEFluidMassBC
    variable = p
    boundary = '2'
  []
  # BCs for x-momentum equation
  # Inlet
  [vx_in]
    type = INSFEFluidMomentumBC
    variable = vel_x
    boundary = '1'
    component   = 0
    #p_fn = 1.05e5
    v_fn = 1
  []
  # Outlet
  [vx_out]
    type = INSFEFluidMomentumBC
    variable = vel_x
    boundary = '2'
    component   = 0
    p_fn = 1e5
  []
  # Walls (left and right walls)
  [vx_wall]
    type = INSFEFluidWallMomentumBC
    variable = vel_x
    boundary = '3 4'
    component = 0
  []
  # BCs for y-momentum equation
  # Inlet
  [vy_in]
    type = INSFEFluidMomentumBC
    variable = vel_y
    boundary = '1'
    component   = 1
    v_fn = 1
  []
  # Outlet
  [vy_out]
    type = INSFEFluidMomentumBC
    variable = vel_y
    boundary = '2'
    component   = 1
    p_fn = 1e5
  []
  # Walls (left and right walls)
  [vy_wall]
    type = INSFEFluidWallMomentumBC
    variable = vel_y
    boundary = '3 4'
    component = 1
  []
  # Special slip-wall BCs for both x- and y- velocities
  [slipwall]
    type = INSFEMomentumFreeSlipBC
    boundary = '3 4'
    variable = vel_x
    u = vel_x
    v = vel_y
  []
  # BCs for fluid energy equation
  # Inlet
  [T_in]
    type = INSFEFluidEnergyBC
    variable = T
    boundary = '1'
    T_fn = 630
  []
  # Outlet
  [T_out]
    type = INSFEFluidEnergyBC
    variable = T
    boundary = '2'
    T_fn = 630
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = FDP
    full = true
    solve_type = 'PJFNK'
  []
[]
[Executioner]
  type = Transient
  dt = 0.2
  dtmin = 1.e-6
  [TimeStepper]
    type = IterationAdaptiveDT
    growth_factor = 1.25
    optimal_iterations = 15
    linear_iteration_ratio = 100
    dt = 0.1
    cutback_factor = 0.5
    cutback_factor_at_failure = 0.5
  []
  dtmax = 25
  petsc_options_iname = '-pc_type -ksp_gmres_restart'
  petsc_options_value = 'lu 100'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-8
  nl_max_its = 12
  l_tol = 1e-5
  l_max_its = 100
  start_time = 0.0
  end_time = 500
  num_steps = 2
[]
[Outputs]
  perf_graph = true
  print_linear_residuals = false
  time_step_interval = 1
  execute_on = 'initial timestep_end'
  [console]
    type = Console
    output_linear = false
  []
  [out]
    type = Exodus
    use_displaced = false
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[Materials]
  [./left]
    type = HeatConductionMaterial
    block = 1
    thermal_conductivity = 1000
    specific_heat = 1
  [../]
  [./right]
    type = HeatConductionMaterial
    block = 2
    thermal_conductivity = 500
    specific_heat = 1
  [../]
[]
[Kernels]
  [./hc]
    type = HeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '1 2'
  [../]
[]
[Constraints]
  [./ced]
    type = GapConductanceConstraint
    variable = lm
    secondary_variable = temp
    k = 100
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 1
  [../]
  [./right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  [../]
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-11
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_1.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-no-lower-d.e
  []
  allow_renumbering = false
  uniform_refine = 0 # 1,2
  patch_update_strategy = always
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        strain = FINITE
        generate_output = 'stress_xx stress_yy'
        block = '1 2'
      []
    []
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e3
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
[]
[Contact]
  [frictional]
    primary = 20
    secondary = 10
    formulation = mortar
    model = coulomb
    friction_coefficient = 0.4
    c_normal = 1.0e1
    c_tangential = 1.0e6
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  []
  [topy]
    type = ADFunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 20 * t) + ${offset}'
    preset = false
  []
  [leftx]
    type = ADFunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = '2e-2 * t'
    # function = '0'
    preset = false
  []
[]
[Executioner]
  type = Transient
  end_time = 5.5
  dt = 0.25 # 0.1 for finer meshes (uniform_refine)
  dtmin = .01
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist               NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 40
  line_search = 'basic'
  snesmf_reuse_base = false
  nl_abs_tol = 1e-9
  nl_rel_tol = 1e-9
  l_tol = 1e-07 # Tightening l_tol can help with friction
[]
[Debug]
  show_var_residual_norms = true
[]
[VectorPostprocessors]
  [cont_press]
    type = NodalValueSampler
    variable = frictional_normal_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
  [friction]
    type = NodalValueSampler
    variable = frictional_tangential_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
[]
[Outputs]
  exodus = true
  execute_on = 'final'
  [checkpoint]
    type = Checkpoint
    num_files = 2
    time_step_interval = 1
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [num_l]
    type = NumLinearIterations
  []
  [contact]
    type = ContactDOFSetSize
    variable = frictional_normal_lm
    subdomain = 'frictional_secondary_subdomain'
    execute_on = 'nonlinear timestep_end'
  []
[]
(test/tests/positions/element_group_centroid_positions.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'depletion_id_in.e'
    exodus_extra_element_integers = 'material_id pin_id assembly_id'
  []
[]
[Positions]
  [all_mesh_blocks]
    type = ElementGroupCentroidPositions
    grouping_type = 'block'
  []
  [block_1]
    type = ElementGroupCentroidPositions
    block = 1
    grouping_type = 'block'
  []
  [block_and_one_id]
    type = ElementGroupCentroidPositions
    block = '1 2'
    extra_id_name = 'pin_id'
    extra_id = '1 2 4'
    grouping_type = 'block_and_extra_id'
  []
  [block_and_two_id]
    type = ElementGroupCentroidPositions
    block = '1 2'
    extra_id_name = 'assembly_id pin_id'
    extra_id = '1; 1 2 4'
    grouping_type = 'block_and_extra_id'
  []
  [block_and_three_id]
    type = ElementGroupCentroidPositions
    block = '1 2'
    extra_id_name = 'assembly_id pin_id material_id'
    extra_id = '0; 1 2 4 6;'
    grouping_type = 'block_and_extra_id'
  []
  [three_ids]
    type = ElementGroupCentroidPositions
    extra_id_name = 'assembly_id pin_id material_id'
    extra_id = '0; 1 2 4 6;'
    grouping_type = 'extra_id'
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  [out]
    type = JSON
    execute_on = FINAL
    execute_system_information_on = none
  []
[]
(modules/heat_transfer/test/tests/homogenization/homogenize_tc_hex.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = homogenize_tc_hex.e
  []
[]
[Variables]
  [chi_x]
  []
  [chi_y]
  []
  [chi_z]
  []
[]
[Kernels]
  [conduction_x]
    type = HeatConduction
    variable = chi_x
  []
  [conduction_y]
    type = HeatConduction
    variable = chi_y
  []
  [conduction_z]
    type = HeatConduction
    variable = chi_z
  []
  [rhs_hom_x]
    type = HomogenizedHeatConduction
    variable = chi_x
    component = 0
  []
  [rhs_hom_y]
    type = HomogenizedHeatConduction
    variable = chi_y
    component = 1
  []
  [rhs_hom_z]
    type = HomogenizedHeatConduction
    variable = chi_z
    component = 2
  []
[]
[Materials]
  [thermal_conductivity1]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '20'
    block = 'mat1'
  []
  [thermal_conductivity2]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '10'
    block = 'mat2'
  []
  [thermal_conductivity3]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '4'
    block = 'mat3 mat4 mat5'
  []
  [thermal_conductivity4]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '100'
    block = 'mat6 mat7'
  []
  [thermal_conductivity5]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '0.001'
    block = 'mat8'
  []
  [thermal_conductivity6]
    type = GenericConstantMaterial
    prop_names = 'thermal_conductivity'
    prop_values = '12'
    block = 'mat9'
  []
[]
[BCs]
  [fix_chi_x]
    type = DirichletBC
    variable = chi_x
    value = 0
    boundary = fix_chi
  []
  [fix_chi_y]
    type = DirichletBC
    variable = chi_y
    value = 0
    boundary = fix_chi
  []
  [fix_chi_z]
    type = DirichletBC
    variable = chi_z
    value = 0
    boundary = fix_chi
  []
  [Periodic]
    [pair_1]
      primary = pb_1a
      secondary = pb_1b
      translation = '0 7 0'
    []
    F2F = 7
    dx = ${fparse 3 * F2F / 2 / sqrt(3)}
    [pair_2]
      primary = pb_2a
      secondary = pb_2b
      translation = '${fparse -dx} ${fparse F2F / 2} 0'
    []
    [pair_3]
      primary = pb_3a
      secondary = pb_3b
      translation = '${fparse dx} ${fparse F2F / 2} 0'
    []
    [pair_4]
      primary = pb_4a
      secondary = pb_4b
      translation = '0 0 -2'
    []
  []
[]
[Executioner]
  type = Steady
  petsc_options_iname = '-pc_type -pc_hypre_type -pc_hypre_boomeramg_strong_threshold -ksp_gmres_restart -pc_hypre_boomeramg_max_iter -pc_hypre_boomeramg_tol'
  petsc_options_value = 'hypre boomeramg 0.7 100 30 1e-5'
[]
[Postprocessors]
  [k_xx]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 0
    col = 0
    execute_on = 'initial timestep_end'
  []
  [k_xy]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 0
    col = 1
    execute_on = 'initial timestep_end'
  []
  [k_xz]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 0
    col = 2
    execute_on = 'initial timestep_end'
  []
  [k_yx]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 1
    col = 0
    execute_on = 'initial timestep_end'
  []
  [k_yy]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 1
    col = 1
    execute_on = 'initial timestep_end'
  []
  [k_yz]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 1
    col = 2
    execute_on = 'initial timestep_end'
  []
  [k_zx]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 2
    col = 0
    execute_on = 'initial timestep_end'
  []
  [k_zy]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 2
    col = 1
    execute_on = 'initial timestep_end'
  []
  [k_zz]
    type = HomogenizedThermalConductivity
    chi = 'chi_x chi_y chi_z'
    row = 2
    col = 2
    execute_on = 'initial timestep_end'
  []
[]
[Outputs]
  [outp_csv]
    type = CSV
    # these are too small and will cause issues
    hide = 'k_xz k_yz k_zx k_zy'
  []
[]
(modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = one_duct.e
  []
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[AuxVariables]
  [proc]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [proc]
    type = ProcessorIDAux
    variable = proc
    execute_on = initial
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1'
  []
[]
[BCs]
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001'
    value = 0.0
  []
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '16'
    value = 0.0
  []
  [fix_z]
    type = DirichletBC
    variable = 'disp_z'
    boundary = '16'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '4'
      function = pressure
      factor = 80
    []
  []
[]
[VectorPostprocessors]
  [section_output]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '0 0 0'
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 0.5
[]
[Outputs]
  exodus = true
  csv = true
[]
(test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
    order = FIRST
  []
  [lambda]
    block = '10'
    order = FIRST
    use_dual = true
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/3d-mortar-contact/half_sphere_nodal_geometry.i)
[Mesh]
  [generated_mesh]
    type = FileMeshGenerator
    file = half_sphere.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 2002
    new_block_name = 'secondary_lower'
    sidesets = '202'
    input = generated_mesh
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 1002
    sidesets = '102'
    new_block_name = 'primary_lower'
    input = secondary
  []
  patch_size = 20
  patch_update_strategy = always
  uniform_refine = 0
[]
[Problem]
  kernel_coverage_check = false
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  volumetric_locking_correction = true
  order = FIRST
  family = LAGRANGE
[]
[Variables]
  [frictional_normal_lm]
    block = 'secondary_lower'
    use_dual = true
  []
  [frictional_tangential_lm]
    block = 'secondary_lower'
    use_dual = true
  []
  [frictional_tangential_dir_lm]
    block = 'secondary_lower'
    use_dual = true
  []
[]
[AuxVariables]
  [saved_x]
  []
  [saved_y]
  []
  [saved_z]
  []
  [tangent_x]
    family = LAGRANGE
    order = FIRST
  []
  [tangent_y]
    family = LAGRANGE
    order = FIRST
  []
  [tangent_z]
    family = LAGRANGE
    order = FIRST
  []
[]
[AuxKernels]
  [friction_x_component]
   type = MortarFrictionalPressureVectorAux
   primary_boundary = 102
   secondary_boundary = 202
   tangent_one = frictional_tangential_lm
   tangent_two = frictional_tangential_dir_lm
   variable = tangent_x
   component = 0
   boundary = 202
  []
  [friction_y_component]
   type = MortarFrictionalPressureVectorAux
   primary_boundary = 102
   secondary_boundary = 202
   tangent_one = frictional_tangential_lm
   tangent_two = frictional_tangential_dir_lm
   variable = tangent_y
   component = 1
   boundary = 202
  []
  [friction_z_component]
   type = MortarFrictionalPressureVectorAux
   primary_boundary = 102
   secondary_boundary = 202
   tangent_one = frictional_tangential_lm
   tangent_two = frictional_tangential_dir_lm
   variable = tangent_z
   component = 2
   boundary = 202
  []
[]
[Functions]
  [push_down]
    type = ParsedFunction
    expression = 'if(t < 1.5, -t, t-3.0)'
  []
  [force_z]
    type = ParsedFunction
    expression = 'if(t < 0.008, 0.0, (-t)*2.0e2 -t*t*100.0)' # 4.0e5
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1 2'
    use_automatic_differentiation = true
    generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
    save_in = 'saved_x saved_y saved_z'
    use_finite_deform_jacobian = true
  []
[]
[BCs]
  [botz]
    type = ADDirichletBC
    variable = disp_z
    boundary = 101
    value = 0.0
  []
  [boty]
    type = ADDirichletBC
    variable = disp_y
    boundary = 101
    value = 0.0
  []
  [botx]
    type = ADDirichletBC
    variable = disp_x
    boundary = 101
    value = 0.0
  []
  [topz]
    type = ADFunctionDirichletBC
    variable = disp_z
    boundary = '201'
    function = push_down
  []
  [topy]
    type = ADDirichletBC
    variable = disp_y
    boundary = '201 202'
    value = 0.0
  []
  [topx]
    type = ADDirichletBC
    variable = disp_x
    boundary = '201 202'
    value = 0.0
  []
[]
[Materials]
  [tensor]
    type = ADComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1.40625e7
    poissons_ratio = 0.25
  []
  [stress]
    type = ADComputeFiniteStrainElasticStress
    block = '1'
  []
  [tensor_1000]
    type = ADComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e5
    poissons_ratio = 0.0
  []
  [stress_1000]
    type = ADComputeFiniteStrainElasticStress
    block = '2'
  []
[]
[Postprocessors]
  [stress_zz]
    type = ElementAverageValue
    variable = stress_zz
    block = 1
  []
  [resid_z]
    type = NodalSum
    variable = saved_z
    boundary = 201
  []
  [disp_z]
    type = NodalExtremeValue
    variable = disp_z
    boundary = 201
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type '
                        '-pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu    superlu_dist nonzero 1e-14 1e-5'
  line_search = 'none'
  l_max_its = 60
  nl_max_its = 50
  dt = 0.004
  dtmin = 0.00001
  # end_time = 1.8
  end_time = 0.000
  nl_rel_tol = 1.0e-6 #1e-7 # -8, -6 to avoid many iterations. Switch it March 2021
  nl_abs_tol = 1e-6 # 6 if no friction
  l_tol = 1e-4
[]
[Outputs]
  exodus = true
  csv = true
  print_linear_residuals = true
  perf_graph = true
  [console]
    type = Console
    max_rows = 5
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[UserObjects]
  [weighted_vel_uo]
    type = LMWeightedVelocitiesUserObject
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    lm_variable_normal = frictional_normal_lm
    lm_variable_tangential_one = frictional_tangential_lm
    lm_variable_tangential_two = frictional_tangential_dir_lm
    secondary_variable = disp_x
    disp_x = disp_x
    disp_y = disp_y
    disp_z = disp_z
    debug_mesh = true
  []
[]
[Constraints]
  [weighted_gap_lm]
    type = ComputeFrictionalForceLMMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_normal_lm
    disp_x = disp_x
    disp_y = disp_y
    disp_z = disp_z
    use_displaced_mesh = true
    friction_lm = frictional_tangential_lm
    friction_lm_dir = frictional_tangential_dir_lm
    c = 7.0e4
    c_t = 7.0e4
    mu = 0.4
    debug_mesh = true
    weighted_gap_uo = weighted_vel_uo
    weighted_velocities_uo = weighted_vel_uo
  []
  [normal_x]
    type = NormalMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_gap_uo = weighted_vel_uo
  []
  [normal_y]
    type = NormalMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_gap_uo = weighted_vel_uo
  []
  [normal_z]
    type = NormalMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_normal_lm
    secondary_variable = disp_z
    component = z
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_gap_uo = weighted_vel_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_z]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_lm
    secondary_variable = disp_z
    component = z
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_x_dir]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_dir_lm
    secondary_variable = disp_x
    component = x
    direction = direction_2
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_y_dir]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_dir_lm
    secondary_variable = disp_y
    component = y
    direction = direction_2
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_z_dir]
    type = TangentialMortarMechanicalContact
    primary_boundary = 102
    secondary_boundary = 202
    primary_subdomain = 1002
    secondary_subdomain = 2002
    variable = frictional_tangential_dir_lm
    secondary_variable = disp_z
    component = z
    direction = direction_2
    use_displaced_mesh = true
    compute_lm_residuals = false
    debug_mesh = true
    weighted_velocities_uo = weighted_vel_uo
  []
[]
[Debug]
 show_var_residual_norms = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-stress.i)
# 3D test with stress control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = false
  constraint_types = 'stress none none stress stress none stress stress stress'
  targets = 'stress11 stress12 stress22 stress13 stress23 stress33'
  macro_gradient = hvar
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = SIXTH
  []
[]
[ICs]
  [disp_x]
    type = RandomIC
    variable = disp_x
    min = -0.1
    max = 0.1
  []
  [disp_y]
    type = RandomIC
    variable = disp_y
    min = -0.1
    max = 0.1
  []
  [disp_z]
    type = RandomIC
    variable = disp_z
    min = -0.1
    max = 0.1
  []
  [hvar]
    type = ScalarConstantIC
    variable = hvar
    value = 0.1
  []
[]
[AuxVariables]
  [sxx]
    family = MONOMIAL
    order = CONSTANT
  []
  [syy]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxy]
    family = MONOMIAL
    order = CONSTANT
  []
  [szz]
    family = MONOMIAL
    order = CONSTANT
  []
  [syz]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exx]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyy]
    family = MONOMIAL
    order = CONSTANT
  []
  [exy]
    family = MONOMIAL
    order = CONSTANT
  []
  [ezz]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exz]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [sxx]
    type = RankTwoAux
    variable = sxx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [syy]
    type = RankTwoAux
    variable = syy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [sxy]
    type = RankTwoAux
    variable = sxy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [zz]
    type = RankTwoAux
    variable = szz
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [syz]
    type = RankTwoAux
    variable = syz
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [sxz]
    type = RankTwoAux
    variable = sxz
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [exx]
    type = RankTwoAux
    variable = exx
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 0
  []
  [eyy]
    type = RankTwoAux
    variable = eyy
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 1
  []
  [exy]
    type = RankTwoAux
    variable = exy
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 1
  []
  [ezz]
    type = RankTwoAux
    variable = ezz
    rank_two_tensor = mechanical_strain
    index_i = 2
    index_j = 2
  []
  [eyz]
    type = RankTwoAux
    variable = eyz
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 2
  []
  [exz]
    type = RankTwoAux
    variable = exz
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress33]
    type = ParsedFunction
    expression = '8.0e2*t'
  []
  [stress23]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress13]
    type = ParsedFunction
    expression = '-7.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [sxx]
    type = ElementAverageValue
    variable = sxx
    execute_on = 'initial timestep_end'
  []
  [syy]
    type = ElementAverageValue
    variable = syy
    execute_on = 'initial timestep_end'
  []
  [sxy]
    type = ElementAverageValue
    variable = sxy
    execute_on = 'initial timestep_end'
  []
  [szz]
    type = ElementAverageValue
    variable = szz
    execute_on = 'initial timestep_end'
  []
  [syz]
    type = ElementAverageValue
    variable = syz
    execute_on = 'initial timestep_end'
  []
  [sxz]
    type = ElementAverageValue
    variable = sxz
    execute_on = 'initial timestep_end'
  []
  [exx]
    type = ElementAverageValue
    variable = exx
    execute_on = 'initial timestep_end'
  []
  [eyy]
    type = ElementAverageValue
    variable = eyy
    execute_on = 'initial timestep_end'
  []
  [exy]
    type = ElementAverageValue
    variable = exy
    execute_on = 'initial timestep_end'
  []
  [ezz]
    type = ElementAverageValue
    variable = ezz
    execute_on = 'initial timestep_end'
  []
  [eyz]
    type = ElementAverageValue
    variable = eyz
    execute_on = 'initial timestep_end'
  []
  [exz]
    type = ElementAverageValue
    variable = exz
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 0.2
[]
[Outputs]
  exodus = false
  csv = false
[]
(modules/solid_mechanics/test/tests/shell/static/clamped_plate_flat.i)
# Test for simply supported plate under uniform pressure
# One quarter of a 50 m x 50 m x 1m plate is modeled in this test.
# Pressure loading is applied on the top surface using nodal forces
# of magnitude -10 N on all nodes. This corresponds to a pressure (q) of
# -10.816 N/m^2.
# The FEM solution at (0,0), which is at the center of the full plate
# is -3.003319e-03 m (for a 5*5 mesh).
# The analytical solution for displacement at center of plate obtained
# using a thin plate assumption for a square plate is
# w = 16 q a^4/(D*pi^6) \sum_{m = 1,3,5, ..}^\inf \sum_{n = 1,3,5, ..}^\inf  (-1)^{(m+n-2)/2}/(mn*(m^2+n^2)^2)
# The above solution is the Naviers series solution from the "Theory of plates
# and shells" by Timoshenko and Woinowsky-Krieger (1959).
# where a = 50 m, q = -10.816 N/m^2 and D = E/(12(1-v^2))
# The analytical series solution converges to 2.998535904e-03 m
# when the first 16 terms of the series are considered (i.e., until
# m & n = 7).
[Mesh]
  [gmg]
    type = FileMeshGenerator
    file = clamped_plate_flat.msh
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[BCs]
  [symm_left_rot]
    type = DirichletBC
    variable = rot_y
    boundary = 'left'
    value = 0.0
  []
  [symm_bottom_rot]
    type = DirichletBC
    variable = rot_x
    boundary = 'bottom'
    value = 0.0
  []
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'right top bottom left'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'right top bottom left'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'right top'
    value = 0.0
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-10
  dt = 1
  dtmin = 1
  end_time = 1.
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
  [load_z]
    type = ADDistributedLoadShell
    function = '10.816'
    variable = disp_z
    displacements = 'disp_x disp_y disp_z'
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 1e9
    poissons_ratio = 0.3
    through_thickness_order = SECOND
    block = 'shell'
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 1
    through_thickness_order = SECOND
    block = 'shell'
  []
  [stress]
    type = ADComputeShellStress
    through_thickness_order = SECOND
    block = 'shell'
  []
[]
[Postprocessors]
  [disp_z2]
    type = PointValue
    point = '0.0 0.0 0.0'
    variable = disp_z
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sidesets_by_normals_generator/less_simple.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = reactor.e
  []
  [./generate_sidesets]
    type = AllSideSetsByNormalsGenerator
    input = fmg
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/3d-periodic/periodic.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = flow_test.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '1'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '2'
  []
[]
[Variables]
  [u]
    block = 'bottom middle top'
  []
  [lm]
    block = 'secondary'
    use_dual = true
  []
[]
[Kernels]
  [diffusion]
    type = Diffusion
    variable = u
    block = 'bottom middle top'
  []
  [force]
    type = BodyForce
    variable = u
    block = 'bottom middle'
    function = 'x - y'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    value = 1
    boundary = 'around'
  []
[]
[Constraints]
  [ev]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = top
    secondary_boundary = bottom
    primary_subdomain = 12
    secondary_subdomain = 11
    delta = 0.1
    periodic = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-12
  solve_type = NEWTON
[]
[Outputs]
  exodus = true
[]
(modules/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole.i)
# Verification Benchmark - Half-wave Dipole Antenna (Frequency Domain)
# Resonant Frequency = 1 GHz
# Wave Propagation Medium: Vacuum
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = dipole_antenna_1G.msh
  []
  [refine]
    type = RefineBlockGenerator
    input = file_mesh
    block = 'vacuum'
    refinement = 2
  []
[]
[Variables]
  [E_real]
    order = FIRST
    family = NEDELEC_ONE
  []
  [E_imag]
    order = FIRST
    family = NEDELEC_ONE
  []
[]
[Functions]
  [WaveNumberSquared]
    type = ParsedFunction
    expression = '(2*pi*1e9/3e8)*(2*pi*1e9/3e8)'
  []
[]
[Kernels]
  [curl_curl_real]
    type = CurlCurlField
    variable = E_real
  []
  [coeff_real]
    type = VectorFunctionReaction
    variable = E_real
    function = WaveNumberSquared
    sign = negative
  []
  [curl_curl_imag]
    type = CurlCurlField
    variable = E_imag
  []
  [coeff_imag]
    type = VectorFunctionReaction
    variable = E_imag
    function = WaveNumberSquared
    sign = negative
  []
[]
[BCs]
  [antenna_real]                          # Impose exact solution of electric field onto antenna surface.
    type = VectorCurlPenaltyDirichletBC   # Replace with proper antenna surface current condition.
    penalty = 1e5
    function_y = '1'
    boundary = antenna
    variable = E_real
  []
  [antenna_imag]
    type = VectorCurlPenaltyDirichletBC
    penalty = 1e5
    function_y = '1'
    boundary = antenna
    variable = E_imag
  []
  [radiation_condition_real]
    type = VectorEMRobinBC
    variable = E_real
    coupled_field = E_imag
    boundary = boundary
    component = real
    mode = absorbing
    beta = 20.9439510239  # wave number at 1 GHz
  []
  [radiation_condition_imag]
    type = VectorEMRobinBC
    variable = E_imag
    coupled_field = E_real
    boundary = boundary
    component = imaginary
    mode = absorbing
    beta = 20.9439510239  # wave number at 1 GHz
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_test_nochange.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
  [dual_var]
    use_dual = true
    block = '10001'
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = friction_uo
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'none'
  nl_abs_tol = 1e-12
  nl_rel_tol = 1e-8
  nl_max_its = 1300
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 1.0 # 3.5
  dt = 0.1
  dtmin = 0.001
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure  normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyWeightedGapUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e7
    penetration_tolerance = 1e-8
    use_mortar_scaled_gap = true
    aux_lm = dual_var
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
[]
(test/tests/misc/ad_curvature/test-circle.i)
[Mesh]
  [circle]
    type = FileMeshGenerator
    file = circle.msh
  []
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [curvature]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [curvature]
    variable = curvature
    type = ADCurvatureAux
    execute_on = 'initial'
    boundary = outer
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
[Postprocessors]
  [average]
    type = SideAverageValue
    execute_on = 'initial'
    variable = curvature
    boundary = outer
  []
[]
(modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFV.i)
mu=1
rho=1
advected_interp_method='average'
velocity_interp_method='rc'
[GlobalParams]
  rhie_chow_user_object = 'rc'
  advected_interp_method = ${advected_interp_method}
  velocity_interp_method = ${velocity_interp_method}
[]
[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolator
    u = u
    v = v
    pressure = pressure
  []
[]
[Mesh]
  inactive = 'mesh internal_boundary_bot internal_boundary_top'
  [mesh]
    type = CartesianMeshGenerator
    dim = 2
    dx = '1'
    dy = '1 1 1'
    ix = '5'
    iy = '5 5 5'
    subdomain_id = '1
                    2
                    3'
  []
  [internal_boundary_bot]
    type = SideSetsBetweenSubdomainsGenerator
    input = mesh
    new_boundary = 'internal_bot'
    primary_block = 1
    paired_block = 2
  []
  [internal_boundary_top]
    type = SideSetsBetweenSubdomainsGenerator
    input = internal_boundary_bot
    new_boundary = 'internal_top'
    primary_block = 2
    paired_block = 3
  []
  [diverging_mesh]
    type = FileMeshGenerator
    file = 'expansion_quad.e'
  []
[]
[Variables]
  [u]
    type = INSFVVelocityVariable
    initial_condition = 0
  []
  [v]
    type = INSFVVelocityVariable
    initial_condition = 1
  []
  [pressure]
    type = INSFVPressureVariable
  []
  [temperature]
    type = INSFVEnergyVariable
  []
[]
[AuxVariables]
  [advected_density]
    type = MooseVariableFVReal
    initial_condition = ${rho}
  []
[]
[FVKernels]
  [mass]
    type = INSFVMassAdvection
    variable = pressure
    rho = ${rho}
  []
  [u_advection]
    type = INSFVMomentumAdvection
    variable = u
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion
    variable = u
    mu = ${mu}
    force_boundary_execution = true
    momentum_component = 'x'
  []
  [u_pressure]
    type = INSFVMomentumPressure
    variable = u
    momentum_component = 'x'
    pressure = pressure
  []
  [v_advection]
    type = INSFVMomentumAdvection
    variable = v
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion
    variable = v
    mu = ${mu}
    force_boundary_execution = true
    momentum_component = 'y'
  []
  [v_pressure]
    type = INSFVMomentumPressure
    variable = v
    momentum_component = 'y'
    pressure = pressure
  []
  [temp_advection]
    type = INSFVEnergyAdvection
    variable = temperature
    advected_interp_method = 'upwind'
  []
  [temp_source]
    type = FVBodyForce
    variable = temperature
    function = 10
    block = 1
  []
[]
[FVBCs]
  inactive = 'noslip-u noslip-v'
  [inlet-u]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = u
    functor = 0
  []
  [inlet-v]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = v
    functor = 1
  []
  [noslip-u]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = u
    function = 0
  []
  [noslip-v]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = v
    function = 0
  []
  [free-slip-u]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = u
    momentum_component = 'x'
  []
  [free-slip-v]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = v
    momentum_component = 'y'
  []
  [axis-u]
    type = INSFVSymmetryVelocityBC
    boundary = 'left'
    variable = u
    u = u
    v = v
    mu = ${mu}
    momentum_component = x
  []
  [axis-v]
    type = INSFVSymmetryVelocityBC
    boundary = 'left'
    variable = v
    u = u
    v = v
    mu = ${mu}
    momentum_component = y
  []
  [axis-p]
    type = INSFVSymmetryPressureBC
    boundary = 'left'
    variable = pressure
  []
  [outlet_p]
    type = INSFVOutletPressureBC
    boundary = 'top'
    variable = pressure
    function = 0
  []
  [inlet_temp]
    type = FVNeumannBC
    boundary = 'bottom'
    variable = temperature
    value = 300
  []
[]
[FunctorMaterials]
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial
    temperature = 'temperature'
    rho = ${rho}
  []
  [advected_material_property]
    type = ADGenericFunctorMaterial
    prop_names = 'advected_rho cp'
    prop_values ='${rho} 1'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -sub_pc_factor_shift_type'
  petsc_options_value = 'asm      200                lu           NONZERO'
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Postprocessors]
  [inlet_mass_variable]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = advected_density
  []
  [inlet_mass_constant]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [inlet_mass_matprop]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = 'advected_rho'
  []
  [mid1_mass]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [mid2_mass]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [outlet_mass]
    type = VolumetricFlowRate
    boundary = top
    vel_x = u
    vel_y = v
    advected_quantity = ${rho}
  []
  [inlet_momentum_x]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = u
  []
  [inlet_momentum_y]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = u
    vel_y = v
    advected_quantity = v
  []
  [mid1_advected_energy]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
  [mid2_advected_energy]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
  [outlet_advected_energy]
    type = VolumetricFlowRate
    boundary = top
    vel_x = u
    vel_y = v
    advected_quantity = 'rho_cp_temp'
    advected_interp_method = 'upwind'
  []
[]
[Outputs]
  csv = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_bussetta_simple.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = cond_number.e
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-ksp_snes_ew'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = ' 201                hypre    boomeramg      8'
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 50
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.1 # 1.0
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[Contact]
  [al_friction]
    formulation = mortar_penalty
    model = coulomb
    primary = '2'
    secondary = '3'
    penalty = 1e7
    penalty_friction = 1e+7
    friction_coefficient = 0.4
    adaptivity_penalty_friction = SIMPLE
    adaptivity_penalty_normal = BUSSETTA
    al_penetration_tolerance = 1e-7
    al_incremental_slip_tolerance = 1e-5 # Not active
    penalty_multiplier = 100
    penalty_multiplier_friction = 5
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_verbose.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 0.02
    use_displaced_mesh = true
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    correct_edge_dropping = true
    gap_flux_models = 'radiation conduction'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  csv = true
  [exodus]
    type = Exodus
    show = 'temp'
  []
[]
(tutorials/shield_multiphysics/inputs/step03_boundary_conditions/step3.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete concrete_hd Al'
  []
[]
[Kernels]
  [diffusion_concrete_hd]
    type = CoefDiffusion
    variable = T
    coef = 5
    block = concrete_hd
  []
  [diffusion_concrete]
    type = CoefDiffusion
    variable = T
    coef = 2.25
    block = concrete
  []
  [diffusion_Al]
    type = CoefDiffusion
    variable = T
    coef = 175
    block = Al
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50kW removed through radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
[]
[Executioner]
  type = Steady # Steady state problem
  solve_type = NEWTON # Perform a Newton solve
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'basic'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 50
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.2 # 3.5
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[Contact]
  [al_friction]
    formulation = mortar_penalty
    model = coulomb
    primary = '2'
    secondary = '3'
    penalty = 1e5
    penalty_friction = 1e8
    friction_coefficient = 0.4
    al_penetration_tolerance = 1e-7
    al_incremental_slip_tolerance = 1.0 # Not active
    penalty_multiplier = 100
    penalty_multiplier_friction = 1
  []
[]
(modules/fsi/test/tests/newmark-beta/test_ALE.i)
beta = 0.25
gamma = 0.5
eta = 19.63
zeta = 0.000025
youngs_modulus = 1e8
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = tmesh_HR.msh
  []
  [convert]
    type = ElementOrderConversionGenerator
    input = file
    conversion_type = FIRST_ORDER
  []
  [matrix_side_interface]
    type = SideSetsBetweenSubdomainsGenerator
    input = convert
    new_boundary = interface_matrix_side
    paired_block = 'inclusion'
    primary_block = 'matrix'
  []
[]
[Variables]
  [disp_x]
    scaling = '${fparse 1/youngs_modulus}'
  []
  [disp_y]
    scaling = '${fparse 1/youngs_modulus}'
  []
  [vel]
    family = LAGRANGE_VEC
    block = 'matrix'
  []
  [p]
    block = 'matrix'
  []
  [lambda]
    family = SCALAR
    block = 'matrix'
  []
[]
[AuxVariables]
  [accel_x]
    block = 'inclusion'
  []
  [accel_y]
    block = 'inclusion'
  []
  [vel_x_solid]
    block = 'inclusion'
  []
  [vel_y_solid]
    block = 'inclusion'
  []
  [vel_x_fluid]
    block = 'matrix'
  []
  [vel_y_fluid]
    block = 'matrix'
  []
[]
[AuxKernels]
  [accel_x] # Calculates and stores acceleration at the end of time step
    type = NewmarkAccelAux
    variable = accel_x
    displacement = disp_x
    velocity = vel_x_solid
    beta = ${beta}
    execute_on = timestep_end
    block = 'inclusion'
  []
  [accel_y] # Calculates and stores acceleration at the end of time step
    type = NewmarkAccelAux
    variable = accel_y
    displacement = disp_y
    velocity = vel_y_solid
    beta = ${beta}
    execute_on = timestep_end
    block = 'inclusion'
  []
  [vel_x_solid]
    type = NewmarkVelAux
    variable = vel_x_solid
    acceleration = accel_x
    gamma = ${gamma}
    execute_on = timestep_end
    block = 'inclusion'
  []
  [vel_y_solid]
    type = NewmarkVelAux
    variable = vel_y_solid
    acceleration = accel_y
    gamma = ${gamma}
    execute_on = timestep_end
    block = 'inclusion'
  []
  [vel_x_fluid]
    type = VectorVariableComponentAux
    variable = vel_x_fluid
    vector_variable = vel
    execute_on = timestep_end
    component = 'x'
  []
  [vel_y_fluid]
    type = VectorVariableComponentAux
    variable = vel_y_fluid
    vector_variable = vel
    execute_on = timestep_end
    component = 'y'
  []
[]
[ScalarKernels]
  [mean_zero_pressure_lm]
    type = AverageValueConstraint
    variable = lambda
    pp_name = pressure_integral
    value = 0
  []
[]
[Kernels]
  [mat_disp_x]
    type = MatDiffusion
    variable = disp_x
    block = 'matrix'
    use_displaced_mesh = false
    diffusivity = ${youngs_modulus}
  []
  [mat_disp_y]
    type = MatDiffusion
    variable = disp_y
    block = 'matrix'
    use_displaced_mesh = false
    diffusivity = ${youngs_modulus}
  []
  [mass]
    type = INSADMass
    variable = p
    use_displaced_mesh = true
    block = 'matrix'
  []
  [mass_pspg]
    type = INSADMassPSPG
    variable = p
    use_displaced_mesh = true
    block = 'matrix'
  []
  [momentum_time]
    type = INSADMomentumTimeDerivative
    variable = vel
    block = 'matrix'
  []
  [momentum_convection]
    type = INSADMomentumAdvection
    variable = vel
    block = 'matrix'
  []
  [momentum_viscous]
    type = INSADMomentumViscous
    variable = vel
    use_displaced_mesh = true
    block = 'matrix'
  []
  [momentum_pressure]
    type = INSADMomentumPressure
    variable = vel
    pressure = p
    integrate_p_by_parts = true
    use_displaced_mesh = true
    block = 'matrix'
  []
  [momentum_supg]
    type = INSADMomentumSUPG
    variable = vel
    material_velocity = relative_velocity
    block = 'matrix'
    use_displaced_mesh = true
  []
  [momentum_mesh_advection]
    type = INSADMomentumMeshAdvection
    variable = vel
    disp_x = 'disp_x'
    disp_y = 'disp_y'
    use_displaced_mesh = true
    block = 'matrix'
  []
  [mean_zero_pressure]
    type = ScalarLagrangeMultiplier
    variable = p
    lambda = lambda
    block = 'matrix'
  []
  # zeta*K*vel + K * disp
  [dynamic_stress_x]
    type = DynamicStressDivergenceTensors
    block = inclusion
    component = 0
    variable = disp_x
    zeta = ${zeta}
  []
  [dynamic_stress_y]
    type = DynamicStressDivergenceTensors
    block = inclusion
    component = 1
    variable = disp_y
    zeta = ${zeta}
  []
  # M*accel + eta*M*vel
  [inertia_x]
    type = InertialForce
    variable = disp_x
    velocity = vel_x_solid
    acceleration = accel_x
    beta = ${beta} # Newmark time integration
    gamma = ${gamma} # Newmark time integration
    eta = ${eta}
    block = 'inclusion'
  []
  [inertia_y]
    type = InertialForce
    variable = disp_y
    velocity = vel_y_solid
    acceleration = accel_y
    beta = ${beta}
    gamma = ${gamma}
    eta = ${eta}
    block = 'inclusion'
  []
[]
[InterfaceKernels]
  [penalty]
    type = ADPenaltyVelocityContinuityNewmarkBeta
    variable = vel
    fluid_velocity = vel
    displacements = 'disp_x disp_y'
    solid_velocities = 'vel_x_solid vel_y_solid'
    solid_accelerations = 'accel_x accel_y'
    boundary = 'interface_matrix_side'
    penalty = ${youngs_modulus}
    beta = ${beta}
    gamma = ${gamma}
  []
[]
[Materials]
  [viscous_mat]
    type = ADGenericConstantMaterial
    block = 'matrix'
    prop_names = 'rho mu'
    prop_values = '1  1'
  []
  [ins_mat]
    type = INSADTauMaterial
    velocity = vel
    pressure = p
    block = 'matrix'
  []
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = ${youngs_modulus}
    poissons_ratio = 0.3
    block = 'inclusion'
  []
  [strain]
    type = ComputeFiniteStrain
    displacements = 'disp_x disp_y'
    block = 'inclusion'
  []
  [small_stress]
    type = ComputeFiniteStrainElasticStress
    block = 'inclusion'
  []
  [density]
    type = GenericConstantMaterial
    block = 'inclusion'
    prop_names = density
    prop_values = 3 # kg/m3
  []
[]
[BCs] # mesh boundaries remain still so I dont think we need to use deformed mesh for vel
  [no_disp_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'bottom top left right'
    value = 0
  []
  [no_disp_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'bottom top left right'
    value = 0
  []
  [shear_top_x]
    type = ADVectorFunctionDirichletBC
    boundary = top
    variable = vel
    function_x = '-0.001'
  []
  [shear_bottom_x]
    type = ADVectorFunctionDirichletBC
    boundary = 'bottom'
    variable = vel
    function_x = '0.001'
  []
  [Periodic]
    [vel]
      variable = vel
      primary = 'left'
      secondary = 'right'
      translation = '1 0 0'
    []
    [x_p]
      variable = p
      primary = 'left'
      secondary = 'right'
      translation = '1 0 0'
    []
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
    petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type'
    petsc_options_value = 'lu       NONZERO               strumpack'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  end_time = 100.0
  nl_abs_tol = 1e-12
  [TimeStepper]
    type = IterationAdaptiveDT
    optimal_iterations = 5
    dt = 0.005
    growth_factor = 1.5
    cutback_factor = 0.9
  []
[]
[Postprocessors]
  [pressure_integral]
    type = ElementIntegralVariablePostprocessor
    variable = p
    execute_on = linear
    block = 'matrix'
  []
  [max_vel_y]
    type = ElementExtremeValue
    variable = vel_y_fluid
    block = 'matrix'
    value_type = max
  []
  [min_vel_y]
    type = ElementExtremeValue
    variable = vel_y_fluid
    block = 'matrix'
    value_type = min
  []
[]
[Outputs]
  hide = 'pressure_integral lambda'
  [csv]
    type = CSV
    execute_on = 'final'
  []
[]
(test/tests/meshgenerators/gmsh_bcs/gmsh_bcs.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = plate_hole.msh
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = 12
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = 10
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  execute_on = 'timestep_end'
  exodus = true
[]
(test/tests/fvkernels/split-mesh/split_mesh.i)
[Mesh]
  [mesh]
    type = FileMeshGenerator
    file = 'foo.cpr'
  []
  use_split = true
  split_file = 'foo.cpr'
[]
(modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven-skewed/hybrid-skewed-vortex.i)
rho=1
mu=1
[Mesh]
  [gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  []
  [corner_node]
    type = ExtraNodesetGenerator
    new_boundary = 'pinned_node'
    nodes = '0'
    input = gen_mesh
  []
[]
[Variables]
  [u]
    family = MONOMIAL
    order = SECOND
  []
  [v]
    family = MONOMIAL
    order = SECOND
  []
  [pressure][]
[]
[Kernels]
  [momentum_x_convection]
    type = ADConservativeAdvection
    variable = u
    velocity = 'velocity'
  []
  [momentum_x_diffusion]
    type = Diffusion
    variable = u
  []
  [momentum_x_pressure]
    type = PressureGradient
    integrate_p_by_parts = false
    variable = u
    pressure = pressure
    component = 0
  []
  [u_forcing]
    type = BodyForce
    variable = u
    function = forcing_u
  []
  [momentum_y_convection]
    type = ADConservativeAdvection
    variable = v
    velocity = 'velocity'
  []
  [momentum_y_diffusion]
    type = Diffusion
    variable = v
  []
  [momentum_y_pressure]
    type = PressureGradient
    integrate_p_by_parts = false
    variable = v
    pressure = pressure
    component = 1
  []
  [v_forcing]
    type = BodyForce
    variable = v
    function = forcing_v
  []
  [mass]
    type = ADConservativeAdvection
    variable = pressure
    velocity = velocity
    advected_quantity = -1
  []
[]
[DGKernels]
  [momentum_x_convection]
    type = ADDGAdvection
    variable = u
    velocity = 'velocity'
  []
  [momentum_x_diffusion]
    type = DGDiffusion
    variable = u
    sigma = 6
    epsilon = -1
  []
  [momentum_y_convection]
    type = ADDGAdvection
    variable = v
    velocity = 'velocity'
  []
  [momentum_y_diffusion]
    type = DGDiffusion
    variable = v
    sigma = 6
    epsilon = -1
  []
[]
[BCs]
  [u_walls]
    type = DGFunctionDiffusionDirichletBC
    boundary = 'left bottom right top'
    variable = u
    sigma = 6
    epsilon = -1
    function = exact_u
  []
  [v_walls]
    type = DGFunctionDiffusionDirichletBC
    boundary = 'left bottom right top'
    variable = v
    sigma = 6
    epsilon = -1
    function = exact_v
  []
  [pressure_pin]
    type = FunctionDirichletBC
    variable = pressure
    boundary = 'pinned_node'
    function = 'exact_p'
  []
[]
[Materials]
  [rho]
    type = ADGenericConstantMaterial
    prop_names = 'rho'
    prop_values = '${rho}'
  []
  [vel]
    type = ADVectorFromComponentVariablesMaterial
    vector_prop_name = 'velocity'
    u = u
    v = v
  []
  [rhou]
    type = ADParsedMaterial
    property_name = 'rhou'
    coupled_variables = 'u'
    material_property_names = 'rho'
    expression = 'rho*u'
  []
  [rhov]
    type = ADParsedMaterial
    property_name = 'rhov'
    coupled_variables = 'v'
    material_property_names = 'rho'
    expression = 'rho*v'
  []
[]
[Functions]
  [exact_u]
    type = ParsedFunction
    expression = 'x^2*(1-x)^2*(2*y-6*y^2+4*y^3)'
  []
  [exact_v]
    type = ParsedFunction
    expression = '-y^2*(1-y)^2*(2*x-6*x^2+4*x^3)'
  []
  [exact_p]
    type = ParsedFunction
    expression = 'x*(1-x)-2/12'
  []
  [forcing_u]
    type = ParsedFunction
    expression = '-4*mu/rho*(-1+2*y)*(y^2-6*x*y^2+6*x^2*y^2-y+6*x*y-6*x^2*y+3*x^2-6*x^3+3*x^4)+1-2*x+4*x^3'
            '*y^2*(2*y^2-2*y+1)*(y-1)^2*(-1+2*x)*(x-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
  [forcing_v]
    type = ParsedFunction
    expression = '4*mu/rho*(-1+2*x)*(x^2-6*y*x^2+6*x^2*y^2-x+6*x*y-6*x*y^2+3*y^2-6*y^3+3*y^4)+4*y^3*x^2*(2'
            '*x^2-2*x+1)*(x-1)^2*(-1+2*y)*(y-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_type'
  petsc_options_value = 'lu       NONZERO               mumps'
  nl_rel_tol = 1e-12
[]
[Outputs]
  exodus = true
  csv = true
[]
[Postprocessors]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2u]
    type = ElementL2Error
    variable = u
    function = exact_u
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2v]
    variable = v
    function = exact_v
    type = ElementL2Error
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2p]
    variable = pressure
    function = exact_p
    type = ElementL2Error
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
[]
(test/tests/meshgenerators/gmsh/gmsh_test.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = sample.msh
  []
[]
(modules/solid_mechanics/test/tests/cohesive_zone_model/ad_czm.i)
[Mesh]
  [msh]
    type = FileMeshGenerator
    file = patch_mesh.e
  []
  [split]
    type = BreakMeshByBlockGenerator
    input = msh
  []
  [add_surfaces]
    type = SideSetsFromNormalsGenerator
    input = split
    normals = '0  0  1
               0  1  0
               1  0  0
               0  0 -1
               0 -1  0
              -1  0  0'
    fixed_normal = true
    new_boundary = 'z1 y1 x1 z0 y0 x0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        strain = FINITE
        add_variables = true
        new_system = true
      []
    []
    [CohesiveZone]
      [interface]
        boundary = 'interface'
        strain = SMALL
        use_automatic_differentiation = true
      []
    []
  []
[]
[Functions]
  [stretch]
    type = PiecewiseLinear
    x = '0 0.05'
    y = '0 0.1'
  []
[]
[Constraints]
  [x1]
    type = EqualValueBoundaryConstraint
    variable = disp_x
    secondary = 'x1' # boundary
    penalty = 1e6
  []
  [y1]
    type = EqualValueBoundaryConstraint
    variable = disp_y
    secondary = 'y1' # boundary
    penalty = 1e6
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    value = 0.0
    boundary = 'x0'
    variable = disp_x
  []
  [fix_y]
    type = DirichletBC
    value = 0.0
    boundary = 'y0'
    variable = disp_y
  []
  [fix_z]
    type = DirichletBC
    value = 0.0
    boundary = 'z0'
    variable = disp_z
  []
  [back_z]
    type = FunctionDirichletBC
    boundary = 'z1'
    variable = disp_z
    use_displaced_mesh = true
    function = stretch
    preset = false
  []
  [rotate_x]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 0
    variable = disp_x
    angular_velocity = true
    preset = false
  []
  [rotate_y]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 1
    variable = disp_y
    angular_velocity = true
    preset = false
  []
  [rotate_z]
    type = DisplacementAboutAxis
    boundary = 'x0 y0 z0 x1 y1 z1'
    function = '90.'
    angle_units = degrees
    axis_origin = '0. 0. 0.'
    axis_direction = '0. 1. 0.'
    component = 2
    variable = disp_z
    angular_velocity = true
    preset = false
  []
[]
[Controls]
  [c1]
    type = TimePeriod
    enable_objects = 'BCs::fix_x BCs::fix_y BCs::fix_z BCs::back_z Constraints::x1 Constraints::y1'
    disable_objects = 'BCs::rotate_x BCs::rotate_y BCs::rotate_z'
    start_time = '0'
    end_time = '0.051'
    execute_on = 'initial timestep_begin'
  []
[]
[Materials]
  [stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [elasticity_tensor]
    type = ComputeElasticityTensor
    fill_method = symmetric9
    C_ijkl = '1.684e5 0.176e5 0.176e5 1.684e5 0.176e5 1.684e5 0.754e5 0.754e5 0.754e5'
  []
  [czm_mat]
    type = ADPureElasticTractionSeparation
    normal_stiffness = 1e4
    tangent_stiffness = 7e3
    boundary = 'interface'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  automatic_scaling = true
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-15
  start_time = 0.0
  dt = 0.025
  end_time = 0.075
[]
[Outputs]
  exodus = true
  print_linear_residuals = false
[]
(test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-aux-kernel.i)
[Mesh]
  displacements = 'disp_x disp_y'
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
    # block 1: left
    # block 2: right
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[AuxVariables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
  [aux_var]
  []
[]
[AuxKernels]
  [function_x]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_x'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
  [function_y]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_y'
    block = '2'
    execute_on = 'LINEAR TIMESTEP_BEGIN'
  []
  [flux_modifier]
    type = StatefulAuxLowerD
    variable = 'aux_var'
    coupled_variable = 'lambda'
    boundary = '1'
  []
[]
[Problem]
  kernel_coverage_check = false
  use_hash_table_matrix_assembly = true
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = '10'
    family = LAGRANGE
    order = FIRST
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = T
    boundary = '5'
    value = 0
  []
  [right]
    type = DirichletBC
    variable = T
    boundary = '8'
    value = 1
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = GapHeatConductanceAuxKernel
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
    use_displaced_mesh = true
    auxkernel_variable = 'aux_var'
    correct_edge_dropping = true
  []
[]
[Materials]
  [constant]
    type = ADGenericConstantMaterial
    prop_names = 'gap_conductance'
    prop_values = '.03'
    block = '1 2'
    use_displaced_mesh = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Transient
  num_steps = 5
  petsc_options_iname = '-pc_type -snes_linesearch_type'
  petsc_options_value = 'lu       basic'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(test/tests/mortar/continuity-3d-non-conforming/continuity_mixed.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = mixed_mesh.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '102'
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = 'secondary'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln_primal
    variable = T
    boundary = '1 2'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi) + 3*pi^2*sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_primal]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_lambda]
    type = ParsedFunction
    expression = 'pi*sin(pi*y)*sin(pi*z)*cos(pi*x)'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = '12'
    secondary_subdomain = '11'
    variable = lambda
    secondary_variable = T
    delta = 0.1
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
                        '-pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [L2lambda]
    type = ElementL2Error
    variable = lambda
    function = exact_soln_lambda
    execute_on = 'timestep_end'
    block = 'secondary'
  []
  [L2u]
    type = ElementL2Error
    variable = T
    function = exact_soln_primal
    execute_on = 'timestep_end'
    block = '1 2'
  []
  [h]
    type = AverageElementSize
    block = '1 2'
  []
[]
(modules/contact/test/tests/multiple_contact_pairs/continuous_sidesets.i)
[GlobalParams]
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = three_hexagons.e
  []
  patch_size = 100
  patch_update_strategy = always
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    block = '1 2 3'
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '110'
      function = pressure
      factor = 200
    []
  []
[]
[Contact]
  [contact_pressure]
    formulation = penalty
    model = frictionless
    primary = '201 301 201'
    secondary = '102 102 301'
    penalty = 2e+03
    normalize_penalty = true
    normal_smoothing_distance = 0.2
    tangential_tolerance = 0.1
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_strain]
    type = ComputePlaneFiniteStrain
    block = '1 2 3'
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'basic'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 1.5
[]
[Outputs]
  exodus = true
  perf_graph = true
  hide = 'penetration nodal_area'
[]
(test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance.i)
[Mesh]
  displacements = 'disp_x disp_y'
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
    # block 1: left
    # block 2: right
  []
  [./primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  [../]
  [./secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  [../]
[]
[AuxVariables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
  [aux_var]
  []
[]
[AuxKernels]
  [function_x]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_x'
    block = '2'
  []
  [function_y]
    type = FunctionAux
    function = '.05 * t'
    variable = 'disp_y'
    block = '2'
  []
  [flux_modifier]
    type = StatefulAuxLowerD
    variable = 'aux_var'
    coupled_variable = 'lambda'
    boundary = '1'
  []
[]
[Problem]
  kernel_coverage_check = false
  use_hash_table_matrix_assembly = true
[]
[Variables]
  [./T]
    block = '1 2'
  [../]
  [./lambda]
    block = '10'
    family = MONOMIAL
    order = CONSTANT
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = T
    boundary = '5'
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = T
    boundary = '8'
    value = 1
  [../]
[]
[Kernels]
  [./conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  [../]
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [./mortar]
    type = GapHeatConductanceAuxKernel
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
    use_displaced_mesh = true
    auxkernel_variable = 'aux_var'
    correct_edge_dropping = true
  [../]
[]
[Materials]
  [constant]
    type = ADGenericConstantMaterial
    prop_names = 'gap_conductance'
    prop_values = '.03'
    block = '1 2'
    use_displaced_mesh = true
  []
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  solve_type = NEWTON
  type = Transient
  num_steps = 5
  petsc_options_iname = '-pc_type -snes_linesearch_type'
  petsc_options_value = 'lu       basic'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer2.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = multiblock.e
  []
  [./extrude]
    type = MeshExtruderGenerator
    input = fmg
    num_layers = 6
    extrusion_vector = '0 0 2'
    bottom_sideset = 'new_bottom'
    top_sideset = 'new_top'
    # Remap layers
    existing_subdomains = '1 2 5'
    layers = '1 3 5'
    new_ids = '10 12 15' # Repeat this remapping for each layer
  []
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = 'new_bottom'
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = 'new_top'
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sidesets_from_points_generator/sidesets_from_points.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
    #parallel_type = replicated
  []
  [./sidesets]
    type = SideSetsFromPointsGenerator
    input = fmg
    points = '0   0  0.5
              0.1 0  0
              0   0 -0.5'
    new_boundary = 'top side bottom'
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = bottom
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = top
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/block_to_mesh_converter_generator/conv_2dblock.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = multiblock.e
  []
  [blockToMesh]
    type = BlockToMeshConverterGenerator
    input = file
    target_blocks = "1 2"
  []
[]
(test/tests/mesh/subdomain_partitioner/subdomain_partitioner.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = test_subdomain_partitioner.e
  []
  [./Partitioner]
    type = LibmeshPartitioner
    partitioner = subdomain_partitioner
    blocks = '1 2 3 4; 1001 1002 1003 1004'
  [../]
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./proc_id]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[AuxKernels]
  [./proc_id]
    type = ProcessorIDAux
    variable = proc_id
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  file_base = subdomain_partitioner_out
  [./exodus]
    type = Exodus
    elemental_as_nodal = true
  [../]
[]
(test/tests/misc/no-renumber-disp-mesh-exodus/test.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 'mesh.inp'
    allow_renumbering = false
  []
[]
[Variables]
  [disp_x]
    order = SECOND
  []
  [disp_y]
    order = SECOND
  []
[]
[Kernels]
  [disp_x]
    type = Diffusion
    variable = disp_x
    use_displaced_mesh = true # Need a kernel to trigger a displaced element reinit
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  start_time = 0.0
  num_steps = 1
  dt = 1
  dtmin = 1
[]
[Outputs]
  [ref]
    type = Exodus
  []
  [disp]
    type = Exodus
    use_displaced = true
  []
[]
(test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id_cut.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = unique_id_cut_in.e
    exodus_extra_element_integers = 'id1 id0'
  []
  [parse_id]
    type = UniqueExtraIDMeshGenerator
    input = fmg
    id_name = 'id1 id0'
    new_id_name = 'parsed_id'
  []
  [deleter]
      type = PlaneDeletionGenerator
      point = '0 0 0'
      normal = '1 1 0'
      input = parse_id
      new_boundary = new_side
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [parsed_id]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [aux_parsed_id]
    type = ExtraElementIDAux
    variable = parsed_id
    extra_id_name = parsed_id
  []
[]
[Outputs]
  exodus = true
  execute_on = timestep_end
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_auto.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = coh3D_3Blocks.e
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
    split_interface = true
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/add_all_side_sets_generators/simple.i)
[Mesh]
  [read]
    type = FileMeshGenerator
    file = twoblocks.e
  []
  [block_1]
    type = AllSideSetsByNormalsGenerator
    input = read
  []
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(test/tests/reporters/extra_id_integral/extra_id_integral.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'extra_id_integral.e'
    use_for_exodus_restart = true
    exodus_extra_element_integers = 'pin_id assembly_id'
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [value1]
    order = FIRST
    initial_from_file_var = value1
  []
  [value2]
    order = FIRST
    initial_from_file_var = value2
  []
[]
[Reporters]
  [extra_id_integral]
    type = ExtraIDIntegralReporter
    variable = 'value1'
    id_name = 'assembly_id'
  []
[]
[Outputs/out]
  type = JSON
  execute_on = FINAL
[]
(test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = PressurizedCyl_Patch6_4Elem.e
    discontinuous_spline_extraction = true
  []
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [diff]
    type = Diffusion
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = 'sin(x)'
  []
[]
[Executioner]
  type = Transient
  num_steps = 2
  solve_type = NEWTON
  dtmin = 1
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sideset_extruder_generator/extrude_multiblock.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 3d_serrated_multiblock.e
  []
  [extrude]
    type = SideSetExtruderGenerator
    input = file
    sideset = '6'
    extrusion_vector = '1 1 0.5'
    num_layers = 3
  []
[]
(test/tests/mortar/convergence-studies/continuity-3d/continuity.i)
[Mesh]
  second_order = true
  [file]
    type = FileMeshGenerator
    file = hex_mesh.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '102'
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Variables]
  [T]
    block = '1 2'
    order = SECOND
  []
  [lambda]
    block = 'secondary'
    # family = MONOMIAL
    # order = CONSTANT
    family = LAGRANGE
    order = SECOND
    use_dual = true
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln_primal
    variable = T
    boundary = '1 2'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi) + 3*pi^2*sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_primal]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_lambda]
    type = ParsedFunction
    expression = 'pi*sin(pi*y)*sin(pi*z)*cos(pi*x)'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = '12'
    secondary_subdomain = '11'
    variable = lambda
    secondary_variable = T
    # delta = 0.1
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
                        '-pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  csv = true
[]
[Postprocessors]
  [L2lambda]
    type = ElementL2Error
    variable = lambda
    function = exact_soln_lambda
    execute_on = 'timestep_end'
    block = 'secondary'
  []
  [L2u]
    type = ElementL2Error
    variable = T
    function = exact_soln_primal
    execute_on = 'timestep_end'
    block = '1 2'
  []
  [h]
    type = AverageElementSize
    block = '1 2'
  []
[]
(test/tests/meshgenerators/coarsen_block_generator/coarsen_quad_multi.i)
[Mesh]
  # use these two to re-generate input.e
  [eg]
    type = CartesianMeshGenerator
    dim = 2
    dx = '2 1 1'
    dy = '2 3'
    ix = '2 1 1'
    iy = '2 3'
    subdomain_id = '0 1 1
                    1 2 0'
  []
  [add_internal]
    type = SideSetsBetweenSubdomainsGenerator
    input = eg
    paired_block = 0
    primary_block = 2
    new_boundary = middle
  []
  [refine]
    type = RefineBlockGenerator
    input = add_internal
    block = '0 1 2'
    refinement = '0 1 1'
    enable_neighbor_refinement = false
    output = true
  []
  final_generator = 'diag'
  [input]
    type = FileMeshGenerator
    file = 'single_nonuniform.e'
  []
  # Go back to what we had
  [coarsen]
    type = CoarsenBlockGenerator
    input = input
    block = '0 1 2'
    coarsening = '0 1 1'
    # This was found by looking at the output of refine
    # careful, has transitions we dont support!
    starting_point = '2.75 0.75 0'
    verbose = true
  []
  [diag]
    type = MeshDiagnosticsGenerator
    input = coarsen
    examine_element_overlap = ERROR
    search_for_adaptivity_nonconformality = WARNING
    examine_non_conformality = WARNING
  []
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/fv_modular_gap_heat_transfer_mortar_radiation_conduction.i)
[Mesh]
  inactive = 'translate'
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  [translate]
    type = TransformGenerator
    transform = translate
    input = primary
    vector_value = '1 0 0'
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    type = MooseVariableFVReal
    block = '1 2'
  []
  [lm]
    order = CONSTANT
    family = MONOMIAL
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADGenericFunctorMaterial
    block = 1
    prop_names = 'thermal_conductivity'
    prop_values = '0.01'
  []
  [right]
    type = ADGenericFunctorMaterial
    block = 2
    prop_names = 'thermal_conductivity'
    prop_values = '0.005'
  []
[]
[FVKernels]
  [hc]
    type = FVDiffusion
    variable = temp
    block = '1 2'
    coeff = 'thermal_conductivity'
  []
[]
[UserObjects]
  [radiation]
    type = FunctorGapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
  []
  [conduction]
    type = FunctorGapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 0.02
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = 'radiation conduction'
    ghost_higher_d_neighbors = true
  []
[]
[FVBCs]
  [left]
    type = FVDirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = FVDirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
  solve_type = NEWTON
[]
[Outputs]
  exodus = true
[]
(modules/porous_flow/examples/groundwater/ex02_steady_state.i)
# Steady-state groundwater model.  See groundwater_models.md for a detailed description
[Mesh]
  [basic_mesh]
    # mesh create by external program: lies within -500<=x<=500 and -200<=y<=200, with varying z
    type = FileMeshGenerator
    file = ex02_mesh.e
  []
  [name_blocks]
    type = RenameBlockGenerator
    input = basic_mesh
    old_block = '2 3 4'
    new_block = 'bot_aquifer aquitard top_aquifer'
  []
  [zmax]
    type = SideSetsFromNormalsGenerator
    input = name_blocks
    normal_tol = 0.1
    new_boundary = zmax
    normals = '0 0 1'
  []
  [xmin_bot_aquifer]
    type = ParsedGenerateSideset
    input = zmax
    included_subdomains = 2
    normal = '-1 0 0'
    combinatorial_geometry = 'x <= -500.0'
    new_sideset_name = xmin_bot_aquifer
  []
[]
[GlobalParams]
  PorousFlowDictator = dictator
[]
[Variables]
  [pp]
  []
[]
[ICs]
  [pp]
    type = FunctionIC
    variable = pp
    function = initial_pp
  []
[]
[BCs]
  [rainfall_recharge]
    type = PorousFlowSink
    boundary = zmax
    variable = pp
    flux_function = -1E-6  # recharge of 0.1mm/day = 1E-4m3/m2/day = 0.1kg/m2/day ~ 1E-6kg/m2/s
  []
  [evapotranspiration]
    type = PorousFlowHalfCubicSink
    boundary = zmax
    variable = pp
    center = 0.0
    cutoff = -5E4 # roots of depth 5m.  5m of water = 5E4 Pa
    use_mobility = true
    fluid_phase = 0
    # Assume pan evaporation of 4mm/day = 4E-3m3/m2/day = 4kg/m2/day ~ 4E-5kg/m2/s
    # Assume that if permeability was 1E-10m^2 and water table at topography then ET acts as pan strength
    # Because use_mobility = true, then 4E-5 = maximum_flux = max * perm * density / visc = max * 1E-4, so max = 40
    max = 40
  []
[]
[DiracKernels]
  [river]
    type = PorousFlowPolyLineSink
    SumQuantityUO = baseflow
    point_file = ex02_river.bh
    # Assume a perennial river.
    # Assume the river has an incision depth of 1m and a stage height of 1.5m, and these are constant in time and uniform over the whole model.  Hence, if groundwater head is 0.5m (5000Pa) there will be no baseflow and leakage.
    p_or_t_vals = '-999995000 5000 1000005000'
    # Assume the riverbed conductance, k_zz*density*river_segment_length*river_width/riverbed_thickness/viscosity = 1E-6*river_segment_length kg/Pa/s
    fluxes = '-1E3 0 1E3'
    variable = pp
  []
[]
[Functions]
  [initial_pp]
    type = SolutionFunction
    scale_factor = 1E4
    from_variable = cosflow_depth
    solution = initial_mesh
  []
  [baseflow_rate]
    type = ParsedFunction
    symbol_names = 'baseflow_kg dt'
    symbol_values = 'baseflow_kg dt'
    expression = 'baseflow_kg / dt * 24.0 * 3600.0 / 400.0'
  []
[]
[PorousFlowUnsaturated]
  fp = simple_fluid
  porepressure = pp
[]
[FluidProperties]
  [simple_fluid]
    type = SimpleFluidProperties
  []
[]
[Materials]
  [porosity_everywhere]
    type = PorousFlowPorosityConst
    porosity = 0.05
  []
  [permeability_aquifers]
    type = PorousFlowPermeabilityConst
    block = 'top_aquifer bot_aquifer'
    permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-13'
  []
  [permeability_aquitard]
    type = PorousFlowPermeabilityConst
    block = aquitard
    permeability = '1E-16 0 0 0 1E-16 0 0 0 1E-17'
  []
[]
[UserObjects]
  [initial_mesh]
    type = SolutionUserObject
    execute_on = INITIAL
    mesh = ex02_mesh.e
    timestep = LATEST
    system_variables = cosflow_depth
  []
  [baseflow]
    type = PorousFlowSumQuantity
  []
[]
[Postprocessors]
  [baseflow_kg]
    type = PorousFlowPlotQuantity
    uo = baseflow
    outputs = 'none'
  []
  [dt]
    type = TimestepSize
    outputs = 'none'
  []
  [baseflow_l_per_m_per_day]
    type = FunctionValuePostprocessor
    function = baseflow_rate
    indirect_dependencies = 'baseflow_kg dt'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    # following 2 lines are not mandatory, but illustrate a popular preconditioner choice in groundwater models
    petsc_options_iname = '-pc_type -sub_pc_type  -pc_asm_overlap'
    petsc_options_value = ' asm      ilu           2              '
  []
[]
[Executioner]
  type = Transient
  solve_type = Newton
  dt = 1E6
  [TimeStepper]
    type = FunctionDT
    function = 'max(1E6, t)'
  []
  end_time = 1E12
  nl_abs_tol = 1E-13
[]
[Outputs]
  print_linear_residuals = false
  [ex]
    type = Exodus
    execute_on = final
  []
  [csv]
    type = CSV
  []
[]
(modules/contact/test/tests/bouncing-block-contact/ping-ponging/mortar-no-ping-pong_weighted.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-no-lower-d.e
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = false
    use_automatic_differentiation = true
    strain = SMALL
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 1e0
    poissons_ratio = 0.3
  []
  [stress]
    type = ADComputeLinearElasticStress
  []
[]
[Contact]
  [leftright]
    secondary = 10
    primary = 20
    model = frictionless
    formulation = mortar
    c_normal = 1e-1
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  num_steps = 40
  end_time = 200
  dt = 5
  dtmin = 5
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
  petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type'
  petsc_options_value = 'lu       1e-5          NONZERO'
  l_max_its = 30
  nl_max_its = 20
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  line_search = 'none'
  snesmf_reuse_base = true
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  [exo]
    type = Exodus
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/small_patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
               '
             '   0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = false
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = TotalLagrangianStressDivergence
    variable = disp_x
    component = 0
  []
  [sdy]
    type = TotalLagrangianStressDivergence
    variable = disp_y
    component = 1
  []
  [sdz]
    type = TotalLagrangianStressDivergence
    variable = disp_z
    component = 2
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = pk1_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(test/tests/mesh/tetgen/tetgen_mesh.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = example1.ele
  []
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(test/tests/meshgenerators/cut_mesh_by_plane_generator/hex_prism_cut.i)
[Mesh]
  [accg]
    type = FileMeshGenerator
    file = 'hex_prism_2d.e'
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = accg
    heights = '0.4 0.8 1.2'
    num_layers = '1 2 3'
    direction = '0 0 1'
    bottom_boundary = '200'
    top_boundary = '300'
    subdomain_swaps = '10 11 15 16;
                       10 12 15 17;
                       10 13 15 18'
  []
  [cut]
    type = CutMeshByPlaneGenerator
    input = extrude
    plane_point = '0 0 1.2'
    plane_normal = '1.0 1.0 2.0'
    cut_face_id = 12345
    cut_face_name = cut
  []
[]
(modules/peridynamics/test/tests/mesh/2D_single_interface_block.i)
# Four disconnected FE mesh blocks are converted to PD mesh blocks
# Interfacial bonds are formed between blocks 1 and 2, 2 and 3, 3 and 4
# All four PD mesh blocks are combined into one block
# All interfacial bonds are gathered into one block
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_4blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = '1 2 3 4'
    merge_pd_blocks = true
    bonding_block_pairs = '1 2; 2 3; 3 4'
    merge_pd_interfacial_blocks = true
    construct_pd_sidesets = true
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xz.i)
# 1-D Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks in the x-z plane.  Each element block
# is a square. They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
# across each block. The temperature of the far bottom boundary
# is ramped from 100 to 200 over one time unit.  The temperature of the far top
# boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks:
#
# Flux = (T_left - T_right) * (gapK/gap_width)
#
# The gap conductivity is specified as 1, thus
#
# gapK(Tavg) = 1.0*Tavg
#
# The heat flux across the gap at time = 1 is then:
#
# Flux = 100 * (1.0/1.0) = 100
#
# For comparison, see results from the flux post processors.  These results
# are the same as for the unit 1-D gap heat transfer between two unit cubes.
[Mesh]
  [file]
    type = FileMeshGenerator
    file = simple_2D.e
  []
  [./rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '0 90 0'
    input = file
  [../]
[]
[Functions]
  [./temp]
    type = PiecewiseLinear
    x = '0   1   2'
    y = '100 200 200'
  [../]
[]
[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
  [../]
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 100
  [../]
[]
[AuxVariables]
  [./gap_cond]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
[]
[BCs]
  [./temp_far_bottom]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = temp
  [../]
  [./temp_far_top]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  [../]
[]
[AuxKernels]
  [./conductance]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_cond
    boundary = 2
  [../]
[]
[Materials]
  [./heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 100000000.0
  [../]
  [./density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '1.0'
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = '201                hypre    boomeramg      4'
  line_search = 'none'
  nl_rel_tol = 1e-12
  l_tol = 1e-3
  l_max_its = 100
  dt = 1e-1
  end_time = 1.0
[]
[Postprocessors]
  [./temp_bottom]
    type = SideAverageValue
    boundary = 2
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./temp_top]
    type = SideAverageValue
    boundary = 3
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./flux_bottom]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
    execute_on = 'initial timestep_end'
  [../]
  [./flux_top]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
    execute_on = 'initial timestep_end'
  [../]
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_balance/large_gap_heat_transfer_test_sphere.i)
sphere_outer_htc = 10 # W/m^2/K
sphere_outer_Tinf = 300 # K
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  coord_type = RZ
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  []
[]
[Variables]
  [temp]
    initial_condition = 500
  []
[]
[AuxVariables]
  [gap_conductance]
    order = CONSTANT
    family = MONOMIAL
  []
  [power_density]
    block = 'fuel'
    initial_condition = 50e3
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = temp
  []
  [heat_source]
    type = CoupledForce
    variable = temp
    block = 'fuel'
    v = power_density
  []
[]
[AuxKernels]
  [gap_cond]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_conductance
    boundary = 2
  []
[]
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 34.6
  []
[]
[ThermalContact]
  [thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0.8
    emissivity_secondary = 0.8
    gap_conductivity = 0.1
    quadrature = true
    gap_geometry_type = SPHERE
    sphere_origin = '0 0 0'
  []
[]
[BCs]
  [RPV_out_BC] # k \nabla T = h (T- T_inf) at RPV outer boundary
    type = ConvectiveFluxFunction # (Robin BC)
    variable = temp
    boundary = '4' # outer RPV
    coefficient = ${sphere_outer_htc}
    T_infinity = ${sphere_outer_Tinf}
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
  [Quadrature]
    order = fifth
    side_order = seventh
  []
[]
[Outputs]
  exodus = false
  csv = true
  [Console]
    type = Console
  []
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
  [ptot]
    type = ElementIntegralVariablePostprocessor
    variable = power_density
    block = 'fuel'
  []
  [sphere_convective_out]
    type = ConvectiveHeatTransferSideIntegral
    T_solid = temp
    boundary = '4' # outer RVP
    T_fluid = ${sphere_outer_Tinf}
    htc = ${sphere_outer_htc}
  []
  [heat_balance] # should be equal to 0 upon convergence
    type = ParsedPostprocessor
    expression = '(sphere_convective_out - ptot) / ptot'
    pp_names = 'sphere_convective_out ptot'
  []
[]
(modules/contact/test/tests/non-singular-frictional-mortar/frictional-mortar.i)
offset = 0.0202
vy = 0.15
vx = 0.040
refine = 1
[GlobalParams]
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [./original_file_mesh]
    type = FileMeshGenerator
    file = long_short_blocks.e
  [../]
  uniform_refine =  ${refine}
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    incremental = true
    add_variables = true
    block = '1 2'
    scaling = 1e-6
  [../]
[]
[Functions]
  [./horizontal_movement]
    type = ParsedFunction
    expression = 'if(t<1.0,${vx}*t-${offset},${vx}-${offset})'
  [../]
  [./vertical_movement]
    type = ParsedFunction
    expression = 'if(t<1.0,${offset},${vy}*(t-1.0)+${offset})'
  [../]
[]
[BCs]
  [./push_left_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = horizontal_movement
  [../]
  [./fix_right_x]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  [../]
  [./fix_right_y]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  [../]
  [./push_left_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = vertical_movement
  [../]
[]
[Materials]
  [./elasticity_tensor_left]
    type = ComputeIsotropicElasticityTensor
    block = 1
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  [../]
  [./stress_left]
    type = ComputeFiniteStrainElasticStress
    block = 1
  [../]
  [./elasticity_tensor_right]
    type = ComputeIsotropicElasticityTensor
    block = 2
    youngs_modulus = 1.0e6
    poissons_ratio = 0.3
  [../]
  [./stress_right]
    type = ComputeFiniteStrainElasticStress
    block = 2
  [../]
[]
[Contact]
  [leftright]
    secondary = 10
    primary = 20
    model = coulomb
    formulation = mortar
    friction_coefficient = 0.2
    c_tangential = 1e3
    normal_lm_scaling = 1e-3
    tangential_lm_scaling = 1e-3
  [../]
[]
[ICs]
  [./disp_y]
    block = 1
    variable = disp_y
    value = ${offset}
    type = ConstantIC
  [../]
  [./disp_x]
    block = 1
    variable = disp_x
    value = -${offset}
    type = ConstantIC
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_ksp_ew -pc_svd_monitor'
  petsc_options_iname = '-pc_type -mat_mffd_err'
  petsc_options_value = 'svd      1e-5'
  dt = 0.1
  dtmin = 0.1
  num_steps = 7
  end_time = 4
  line_search = none
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  [./exodus]
    type = Exodus
  [../]
[]
(modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insad.i)
[Mesh]
  second_order = true
  inactive = 'mesh internal_boundary_bot internal_boundary_top'
  [mesh]
    type = CartesianMeshGenerator
    dim = 2
    dx = '1'
    dy = '1 1 1'
    ix = '5'
    iy = '5 5 5'
    subdomain_id = '1
                    2
                    3'
  []
  [internal_boundary_bot]
    type = SideSetsBetweenSubdomainsGenerator
    input = mesh
    new_boundary = 'internal_bot'
    primary_block = 1
    paired_block = 2
  []
  [internal_boundary_top]
    type = SideSetsBetweenSubdomainsGenerator
    input = internal_boundary_bot
    new_boundary = 'internal_top'
    primary_block = 2
    paired_block = 3
  []
  [diverging_mesh]
    type = FileMeshGenerator
    file = 'expansion_quad.e'
  []
[]
[Modules]
  [IncompressibleNavierStokes]
    equation_type = steady-state
    # no slip BCs
    velocity_boundary = 'bottom right left'
    velocity_function = '0 1    0 0   0 0'
    pressure_boundary = 'top'
    pressure_function = '1'
    density_name = rho
    dynamic_viscosity_name = mu
    integrate_p_by_parts = false
    order = SECOND
  []
[]
[Materials]
  [const]
    type = GenericConstantMaterial
    block = '1 2 3'
    prop_names = 'rho mu'
    prop_values = '1  1'
  []
[]
[FunctorMaterials]
  [ADconst]
    type = ADGenericFunctorMaterial
    block = '1 2 3'
    prop_names = 'rho_ad'
    prop_values = '1'
  []
  [vel_functor]
    type = ADGenericVectorFunctorMaterial
    prop_names = 'velocity'
    prop_values = 'vel_x vel_y 0'
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
  petsc_options_value = '300                bjacobi  ilu          4'
  line_search = none
  nl_rel_tol = 1e-12
  nl_max_its = 6
  l_tol = 1e-6
  l_max_its = 300
[]
[Postprocessors]
  [pdrop_total]
    type = PressureDrop
    pressure = p
    upstream_boundary = 'bottom'
    downstream_boundary = 'top'
    boundary = 'top bottom'
  []
  [pdrop_mid1]
    type = PressureDrop
    pressure = p
    upstream_boundary = 'bottom'
    downstream_boundary = 'internal_bot'
    boundary = 'bottom internal_bot'
  []
  [pdrop_mid2]
    type = PressureDrop
    pressure = p
    upstream_boundary = 'internal_bot'
    downstream_boundary = 'internal_top'
    boundary = 'internal_top internal_bot'
  []
  [pdrop_mid3]
    type = PressureDrop
    pressure = p
    upstream_boundary = 'internal_top'
    downstream_boundary = 'top'
    boundary = 'top internal_top'
  []
  [sum_drops]
    type = ParsedPostprocessor
    expression = 'pdrop_mid1 + pdrop_mid2 + pdrop_mid3'
    pp_names = 'pdrop_mid1 pdrop_mid2 pdrop_mid3'
  []
  [p_upstream]
    type = SideAverageValue
    variable = p
    boundary = 'bottom'
  []
  [p_downstream]
    type = SideAverageValue
    variable = p
    boundary = 'top'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/solid_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i)
#This problem from [Wilson 1979] tests the thermal strain term in the
#interaction integral
#
#theta_e = 10 degrees C; a = 252; E = 207000; nu = 0.3; alpha = 1.35e-5
#
#With uniform_refine = 3, KI converges to
#KI = 5.602461e+02 (interaction integral)
#KI = 5.655005e+02 (J-integral)
#
#Both are in good agreement with [Shih 1986]:
#average_value = 0.4857 = KI / (sigma_theta * sqrt(pi * a))
#sigma_theta = E * alpha * theta_e / (1 - nu)
# = 207000 * 1.35e-5 * 10 / (1 - 0.3) = 39.9214
#KI = average_value * sigma_theta * sqrt(pi * a) = 5.656e+02
#
#References:
#W.K. Wilson, I.-W. Yu, Int J Fract 15 (1979) 377-387
#C.F. Shih, B. Moran, T. Nakamura, Int J Fract 30 (1986) 79-102
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = False
[]
[Mesh]
  displacements = 'disp_x disp_y'
  [file_mesh]
    type = FileMeshGenerator
    file = crack2d.e
  []
  [rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '0 0 90'
    input = file_mesh
  []
[]
[AuxVariables]
  [./SED]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./temp]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Functions]
  [./tempfunc]
    type = ParsedFunction
    expression = 10.0*(2*y/504)
  [../]
[]
[DomainIntegral]
  integrals = 'KFromJIntegral InteractionIntegralKI'
  boundary = 800
  crack_direction_method = CrackDirectionVector
  crack_direction_vector = '0 1 0'
  2d = true
  axis_2d = 2
  radius_inner = '60.0 80.0 100.0 120.0'
  radius_outer = '80.0 100.0 120.0 140.0'
  symmetry_plane = 0
  incremental = true
  # interaction integral parameters
  disp_x = disp_x
  disp_y = disp_y
  block = 1
  youngs_modulus = 207000
  poissons_ratio = 0.3
  temperature = temp
  eigenstrain_names = thermal_expansion
[]
[Physics/SolidMechanics/QuasiStatic]
  [./master]
    strain = FINITE
    add_variables = true
    incremental = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
    planar_formulation = PLANE_STRAIN
    eigenstrain_names = thermal_expansion
  [../]
[]
[AuxKernels]
  [./SED]
    type = MaterialRealAux
    variable = SED
    property = strain_energy_density
    execute_on = timestep_end
  [../]
  [./tempfuncaux]
    type = FunctionAux
    variable = temp
    function = tempfunc
    block = 1
  [../]
[]
[BCs]
  [./crack_x]
    type = DirichletBC
    variable = disp_x
    boundary = 100
    value = 0.0
  [../]
  [./no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 400
    value = 0.0
  [../]
  [./no_y1]
    type = DirichletBC
    variable = disp_y
    boundary = 900
    value = 0.0
  [../]
[] # BCs
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 207000
    poissons_ratio = 0.3
  [../]
  [./elastic_stress]
    type = ComputeFiniteStrainElasticStress
  [../]
  [./thermal_expansion_strain]
    type = ComputeThermalExpansionEigenstrain
    stress_free_temperature = 0.0
    thermal_expansion_coeff = 1.35e-5
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
  petsc_options_value = 'asm         31   preonly   lu      1'
  line_search = 'none'
   l_max_its = 50
   nl_max_its = 40
   nl_rel_step_tol= 1e-10
   nl_rel_tol = 1e-10
   start_time = 0.0
   dt = 1
   end_time = 1
   num_steps = 1
[]
[Outputs]
  file_base = interaction_integral_2d_rot_out
  exodus = true
  csv = true
[]
[Preconditioning]
  active = 'smp'
  [./smp]
    type = SMP
    pc_side = left
    ksp_norm = preconditioned
    full = true
  [../]
[]
(test/tests/mortar/continuity-2d-conforming/conforming_two_var.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-conf.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
  []
[]
[Functions]
  [./exact_sln]
    type = ParsedFunction
    expression= y
  [../]
  [./ffn]
    type = ParsedFunction
    expression= 0
  [../]
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm_u]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
  [./v]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm_v]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[Kernels]
  [./diff_u]
    type = Diffusion
    variable = u
  [../]
  [./ffn]
    type = BodyForce
    variable = u
    function = ffn
  [../]
  [./diff_v]
    type = Diffusion
    variable = v
  [../]
  [./coupled_u]
    type = CoupledForce
    variable = v
    v = u
  [../]
[]
[Problem]
  extra_tag_vectors = 'ref'
[]
[Constraints]
  [./ced_u]
    type = EqualValueConstraint
    variable = lm_u
    secondary_variable = u
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    absolute_value_vector_tags = 'ref'
  [../]
  [./ced_v]
    type = EqualValueConstraint
    variable = lm_v
    secondary_variable = v
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    absolute_value_vector_tags = 'ref'
  [../]
[]
[BCs]
  [./all]
    type = FunctionDirichletBC
    variable = u
    boundary = '1 2 3 4'
    function = exact_sln
  [../]
  [./allv]
    type = DirichletBC
    variable = v
    boundary = '1 2 3 4'
    value = 0
  [../]
[]
[Postprocessors]
  [./l2_error]
    type = ElementL2Error
    variable = u
    function = exact_sln
    block = '1 2'
    execute_on = 'initial timestep_end'
  [../]
  [./l2_v]
    type = ElementL2Norm
    variable = v
    block = '1 2'
    execute_on = 'initial timestep_end'
  [../]
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-12
  l_tol = 1e-12
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/mortar-q-points/test.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [./primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  [../]
  [./secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  [../]
  uniform_refine = 2
[]
[Problem]
  kernel_coverage_check = false
[]
[Variables]
  [./T]
    block = '1 2'
  [../]
[]
[Kernels]
  [./conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  [../]
  [./reaction]
    type = Reaction
    variable = T
    block = '1 2'
  [../]
[]
[Constraints]
  [./mortar]
    type = SpatiallyVaryingSource
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    secondary_variable = T
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step08_adaptivity/step8_adapt.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Adaptivity]
  marker = jump_threshold
  max_h_level = 2
  [Indicators]
    [temperature_jump]
      type = GradientJumpIndicator
      variable = T
      scale_by_flux_faces = true
    []
  []
  [Markers]
    [jump_threshold]
      type = ValueThresholdMarker
      coarsen = 0.3
      variable = temperature_jump
      refine = 2
      block = 'concrete_hd concrete Al'
    []
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
    initial_condition = 300
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = 1050
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = 1050
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = 875
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Transient
  num_steps = 5
  dt = ${units 12 h -> s}
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step_two_ducts.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = two_ducts.e
  []
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[AuxVariables]
  [proc]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [proc]
    type = ProcessorIDAux
    variable = proc
    execute_on = initial
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1'
  []
[]
[BCs]
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 21001'
    value = 0.0
  []
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '16 216'
    value = 0.0
  []
  [fix_z]
    type = DirichletBC
    variable = 'disp_z'
    boundary = '16 216'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '4'
      function = pressure
      factor = 80
    []
    [hex2_pressure]
      boundary = '24'
      function = pressure
      factor = -80
    []
  []
[]
[VectorPostprocessors]
  [section_output]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    positions = '10.0 18.0'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '0 0 0'
    cross_section_maximum_radius = 1.5
  []
  [section_output_two]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    positions = '10.0 18.0'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '2.1 2.1 0'
    cross_section_maximum_radius = 1.5
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-8
  nl_rel_tol = 1e-12
  l_max_its = 20
  dt = 0.5
  end_time = 0.5
[]
[Outputs]
  exodus = true
  csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/large_patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
               '
             '   0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = UpdatedLagrangianStressDivergence
    variable = disp_x
    displacements = 'disp_x disp_y disp_z'
    component = 0
    use_displaced_mesh = true
    large_kinematics = true
  []
  [sdy]
    type = UpdatedLagrangianStressDivergence
    variable = disp_y
    displacements = 'disp_x disp_y disp_z'
    component = 1
    use_displaced_mesh = true
    large_kinematics = true
  []
  [sdz]
    type = UpdatedLagrangianStressDivergence
    variable = disp_z
    displacements = 'disp_x disp_y disp_z'
    component = 2
    use_displaced_mesh = true
    large_kinematics = true
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
    large_kinematics = true
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(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/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/2d.i)
# 2D with mixed conditions on stress/strain
[GlobalParams]
  displacements = 'disp_x disp_y'
  large_kinematics = false
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '2d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0'
    fixed_normal = true
    new_boundary = 'left right bottom top'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [hvar]
    family = SCALAR
    order = THIRD
  []
[]
[AuxVariables]
  [sxx]
    family = MONOMIAL
    order = CONSTANT
  []
  [syy]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxy]
    family = MONOMIAL
    order = CONSTANT
  []
  [exx]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyy]
    family = MONOMIAL
    order = CONSTANT
  []
  [exy]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [sxx]
    type = RankTwoAux
    variable = sxx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [syy]
    type = RankTwoAux
    variable = syy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [sxy]
    type = RankTwoAux
    variable = sxy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [exx]
    type = RankTwoAux
    variable = exx
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 0
  []
  [eyy]
    type = RankTwoAux
    variable = eyy
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 1
  []
  [exy]
    type = RankTwoAux
    variable = exy
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 1
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '4.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [stress11]
    type = ParsedFunction
    expression = '400*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-200*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '100*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_y
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix2"
    variable = disp_y
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [sxx]
    type = ElementAverageValue
    variable = sxx
    execute_on = 'initial timestep_end'
  []
  [syy]
    type = ElementAverageValue
    variable = syy
    execute_on = 'initial timestep_end'
  []
  [sxy]
    type = ElementAverageValue
    variable = sxy
    execute_on = 'initial timestep_end'
  []
  [exx]
    type = ElementAverageValue
    variable = exx
    execute_on = 'initial timestep_end'
  []
  [eyy]
    type = ElementAverageValue
    variable = eyy
    execute_on = 'initial timestep_end'
  []
  [exy]
    type = ElementAverageValue
    variable = exy
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  csv = true
[]
(modules/electromagnetics/test/tests/benchmarks/waveguide2D/waveguide2D_test.i)
# Test for EMRobinBC in port and absorbing modes with simple electric plane wave
# 2D, vacuum-filled waveguide with conducting walls
# u^2 + k^2*u = 0, 0 < x < 80, 0 < y < 10, u: R -> C
# k = 2*pi*freq/c, freq = 20e6 Hz, c = 3e8 m/s
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = waveguide.msh
  []
[]
[Variables]
  [E_real]
    order = FIRST
    family = LAGRANGE
  []
  [E_imag]
    order = FIRST
    family = LAGRANGE
  []
[]
[Functions]
  [inc_y]
    type = ParsedFunction
    expression = 'sin(pi * y / 10)'
  []
[]
[Kernels]
  [diffusion_real]
    type = Diffusion
    variable = E_real
  []
  [coeffField_real]
    type = ADMatReaction
    reaction_rate = kSquared
    variable = E_real
  []
  [diffusion_imaginary]
    type = Diffusion
    variable = E_imag
  []
  [coeffField_imaginary]
    type = ADMatReaction
    reaction_rate = kSquared
    variable = E_imag
  []
[]
[BCs]
  [top_real]
    type = DirichletBC
    value = 0
    variable = E_real
    boundary = top
  []
  [bottom_real]
    type = DirichletBC
    value = 0
    variable = E_real
    boundary = bottom
  []
  [port_real]
    type = EMRobinBC
    coeff_real = -0.27706242940220277  # -sqrt(k^2 - (pi/10)^2)
    sign = positive
    profile_func_real = inc_y
    profile_func_imag = 0
    field_real = E_real
    field_imaginary = E_imag
    variable = E_real
    component = real
    mode = port
    boundary = port
  []
  [exit_real]
    type = EMRobinBC
    coeff_real = 0.27706242940220277
    sign = negative
    field_real = E_real
    field_imaginary = E_imag
    variable = E_real
    component = real
    mode = absorbing
    boundary = exit
  []
  [top_imaginary]
    type = DirichletBC
    value = 0
    variable = E_imag
    boundary = top
  []
  [bottom_imaginary]
    type = DirichletBC
    value = 0
    variable = E_imag
    boundary = bottom
  []
  [port_imaginary]
    type = EMRobinBC
    coeff_real = -0.27706242940220277
    sign = positive
    profile_func_real = inc_y
    profile_func_imag = 0
    field_real = E_real
    field_imaginary = E_imag
    variable = E_imag
    component = imaginary
    mode = port
    boundary = port
  []
  [exit_imaginary]
    type = EMRobinBC
    coeff_real = 0.27706242940220277
    sign = negative
    field_real = E_real
    field_imaginary = E_imag
    variable = E_imag
    component = imaginary
    mode = absorbing
    boundary = exit
  []
[]
[Materials]
  [kSquared]
    type = ADParsedMaterial
    property_name = kSquared
    expression = '0.4188790204786391^2'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
[]
[Outputs]
  exodus = true
  print_linear_residuals = true
[]
(modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-action.i)
starting_point = 0.5e-1
offset = -0.045
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks.e
  []
  [remote]
    type = BlockDeletionGenerator
    input = file
    block = '3 4'
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[Problem]
  material_coverage_check = false
  kernel_coverage_check = false
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Physics/SolidMechanics/Dynamic]
  [all]
    hht_alpha = 0.0
    newmark_beta = 0.25
    newmark_gamma = 0.5
    mass_damping_coefficient = 0.0
    stiffness_damping_coefficient = 1.0
    accelerations = 'accel_x accel_y'
    generate_output = 'stress_xx stress_yy'
    block = '1 2'
    strain = FINITE
    density = density
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
  [density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '7750'
  []
[]
[AuxVariables]
  [worn_depth]
    block = 'normal_secondary_subdomain'
  []
  [gap_vel]
    block = 'normal_secondary_subdomain'
  []
  [vel_x]
    order = FIRST
    family = LAGRANGE
  []
  [vel_y]
    order = FIRST
    family = LAGRANGE
  []
  [accel_x]
    order = FIRST
    family = LAGRANGE
  []
  [accel_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[AuxKernels]
  [gap_vel]
    type = WeightedGapVelAux
    variable = gap_vel
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = normal_primary_subdomain
    secondary_subdomain = normal_secondary_subdomain
    disp_x = disp_x
    disp_y = disp_y
  []
  [worn_depth]
    type = MortarArchardsLawAux
    variable = worn_depth
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = normal_primary_subdomain
    secondary_subdomain = normal_secondary_subdomain
    displacements = 'disp_x disp_y'
    friction_coefficient = 0.5
    energy_wear_coefficient = 1.0e-6
    normal_pressure = normal_normal_lm
    execute_on = 'TIMESTEP_END'
  []
[]
[Contact]
  [normal]
    formulation = mortar
    model = coulomb
    primary = 20
    secondary = 10
    c_normal = 1e+06
    c_tangential = 1.0e+6
    capture_tolerance = 1.0e-5
    newmark_beta = 0.25
    newmark_gamma = 0.5
    mortar_dynamics = true
    wear_depth = worn_depth
    friction_coefficient = 0.5
    normalize_c = true
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(4.0 * pi / 4 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * (cos(32.0 * pi / 4 * t) - 1.0)'
  []
[]
[Executioner]
  type = Transient
  end_time = 0.5
  dt = 0.05
  dtmin = .002
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor -snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type '
                        '-pc_factor_shift_amount'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15'
  nl_max_its = 40
  l_max_its = 15
  line_search = 'l2'
  snesmf_reuse_base = true
  [TimeIntegrator]
    type = NewmarkBeta
    beta = 0.25
    gamma = 0.5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
  checkpoint = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = 'num_nl cumulative contact'
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
  [contact]
    type = ContactDOFSetSize
    variable = normal_normal_lm
    subdomain = '3'
    execute_on = 'nonlinear timestep_end'
  []
[]
(test/tests/meshgenerators/file_mesh_generator/3d_steady_diffusion_iga.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = Cube_With_Sidesets.e
  []
  allow_renumbering = false   # VTK diffs via XMLDiff are
  parallel_type = replicated  # really fragile
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    boundary = 3
    value = 0
  []
  [right]
    type = DirichletBC
    variable = u
    boundary = 1
    value = 1
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  vtk = true
[]
(test/tests/partitioners/file_mesh_skip_partition/file_mesh_skip_partitioning.i)
[Mesh]
  [generate_2d]
    type = FileMeshGenerator
    file = 2d_base.e
    skip_partitioning = true
  []
  [extrude]
    type = MeshExtruderGenerator
    input = generate_2d
    extrusion_vector = '0 0 1'
    num_layers = 5
  []
  [Partitioner]
    type = HierarchicalGridPartitioner
    nx_nodes = 2
    ny_nodes = 1
    nz_nodes = 1
    nx_procs = 1
    ny_procs = 1
    nz_procs = 2
  []
[]
[Variables]
  [u]
  []
[]
[AuxVariables]
  [pid]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [pid]
    type = ProcessorIDAux
    variable = pid
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  []
  [right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/aux-gap/mismatch.i)
[Mesh]
  second_order = true
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
    order = SECOND
  []
  [lambda]
    block = '10'
    use_dual = true
    order = SECOND
  []
[]
[AuxVariables]
  [gap]
    block = '10'
  []
[]
[AuxKernels]
  [gap]
    type = WeightedGapAux
    variable = gap
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = HeatConductionMaterial
    block = 1
    thermal_conductivity = 1000
    specific_heat = 1
  []
  [right]
    type = HeatConductionMaterial
    block = 2
    thermal_conductivity = 500
    specific_heat = 1
  []
[]
[Kernels]
  [hc]
    type = HeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '1 2'
  []
[]
[UserObjects]
  [simple]
    type = GapFluxModelSimple
    k = 100
    temperature = temp
    boundary = 100
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = simple
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 1
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  nl_rel_tol = 1e-11
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-conf-2nd.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Functions]
  [./exact_sln]
    type = ParsedFunction
    expression= x*x+y*y
  [../]
  [./ffn]
    type = ParsedFunction
    expression= -4
  [../]
[]
[Variables]
  [./u]
    order = SECOND
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm]
    order = SECOND
    family = LAGRANGE
    block = secondary_lower
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./ffn]
    type = BodyForce
    variable = u
    function = ffn
  [../]
[]
[Constraints]
  [./ced]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
  [../]
[]
[BCs]
  [./all]
    type = FunctionDirichletBC
    variable = u
    boundary = '1 2 3 4'
    function = exact_sln
  [../]
[]
[Postprocessors]
  [./l2_error]
    type = ElementL2Error
    variable = u
    function = exact_sln
    block = '1 2'
    execute_on = 'initial timestep_end'
  [../]
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-14
  l_tol = 1e-14
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/action/restart-block-restriction/ns-restart-transient.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'ns-restart-steady_out.e'
    use_for_exodus_restart = true
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
    initial_from_file_var = vel_x
    initial_from_file_timestep = LATEST
  []
  [vel_y]
    type = INSFVVelocityVariable
    initial_from_file_var = vel_y
    initial_from_file_timestep = LATEST
  []
  [pressure]
    type = INSFVPressureVariable
    initial_from_file_var = pressure
    initial_from_file_timestep = LATEST
  []
  [T_fluid]
    type = INSFVEnergyVariable
    initial_from_file_var = T_fluid
    initial_from_file_timestep = LATEST
  []
[]
[Modules]
  [NavierStokesFV]
    compressibility = 'incompressible'
    add_energy_equation = true
    density = 1
    dynamic_viscosity = 1
    thermal_conductivity = 1e-3
    specific_heat = 1
    velocity_variable = 'vel_x vel_y'
    pressure_variable = 'pressure'
    fluid_temperature_variable = 'T_fluid'
    inlet_boundaries = 'left'
    momentum_inlet_types = 'fixed-velocity'
    momentum_inlet_functors = '0.1 0'
    energy_inlet_types = 'fixed-temperature'
    energy_inlet_functors = '1'
    wall_boundaries = 'top bottom'
    momentum_wall_types = 'noslip noslip'
    energy_wall_types = 'heatflux heatflux'
    energy_wall_functors = '0 0'
    outlet_boundaries = 'right'
    momentum_outlet_types = 'fixed-pressure'
    pressure_functors = '0'
    ambient_convection_alpha = 1
    ambient_temperature = '100'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -sub_pc_factor_shift_type'
  petsc_options_value = 'asm      100                lu           NONZERO'
  line_search = 'none'
  nl_rel_tol = 1e-12
  end_time = 2
  dt = 1
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step11_multiapps/step11_2d_fluid.i)
cp_water_multiplier = 5e-2
mu_multiplier = 1
# Real facility uses forced convection to cool the water tank at full power
# Need to lower power for natural convection so concrete doesn't get too hot.
power = '${fparse 5e4 / 144 * 0.5}'
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'mesh2d_coarse_in.e'
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 1e-4
  []
  [vel_y]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 1e-4
  []
  [pressure]
    type = INSFVPressureVariable
    block = 'water'
    initial_condition = 1e5
  []
  [T_fluid]
    type = INSFVEnergyVariable
    initial_condition = 300
    block = 'water'
    scaling = 1e-05
  []
  [lambda]
    type = MooseVariableScalar
    family = SCALAR
    order = FIRST
    # Cleans up console output
    outputs = none
  []
[]
[GlobalParams]
  velocity_interp_method = rc
  rhie_chow_user_object = ins_rhie_chow_interpolator
  rho = rho
[]
[FVKernels]
  [water_ins_mass_advection]
    type = INSFVMassAdvection
    advected_interp_method = upwind
    block = water
    variable = pressure
  []
  [water_ins_mass_pressure_pin]
    type = FVPointValueConstraint
    lambda = lambda
    phi0 = 1e5
    point = '1 3 0'
    variable = pressure
  []
  [water_ins_momentum_time_vel_x]
    type = INSFVMomentumTimeDerivative
    block = water
    momentum_component = x
    variable = vel_x
  []
  [water_ins_momentum_time_vel_y]
    type = INSFVMomentumTimeDerivative
    block = water
    momentum_component = y
    variable = vel_y
  []
  [water_ins_momentum_advection_x]
    type = INSFVMomentumAdvection
    advected_interp_method = upwind
    block = water
    momentum_component = x
    variable = vel_x
    characteristic_speed = 0.01
  []
  [water_ins_momentum_advection_y]
    type = INSFVMomentumAdvection
    advected_interp_method = upwind
    block = water
    momentum_component = y
    variable = vel_y
    characteristic_speed = 0.1
  []
  [water_ins_momentum_diffusion_x]
    type = INSFVMomentumDiffusion
    block = water
    momentum_component = x
    mu = mu
    variable = vel_x
  []
  [water_ins_momentum_diffusion_y]
    type = INSFVMomentumDiffusion
    block = water
    momentum_component = y
    mu = mu
    variable = vel_y
  []
  [water_ins_momentum_pressure_x]
    type = INSFVMomentumPressure
    block = water
    momentum_component = x
    pressure = pressure
    variable = vel_x
  []
  [water_ins_momentum_pressure_y]
    type = INSFVMomentumPressure
    block = water
    momentum_component = y
    pressure = pressure
    variable = vel_y
  []
  [water_ins_momentum_gravity_z]
    type = INSFVMomentumGravity
    block = water
    gravity = '0 -9.81 0'
    momentum_component = y
    variable = vel_y
  []
  [water_ins_momentum_boussinesq_z]
    type = INSFVMomentumBoussinesq
    T_fluid = T_fluid
    alpha_name = alpha
    block = water
    gravity = '0 -9.81 0'
    momentum_component = y
    ref_temperature = 300
    rho = 955.7
    variable = vel_y
  []
  # Energy conservation equation
  [water_ins_energy_time]
    type = INSFVEnergyTimeDerivative
    block = water
    dh_dt = dh_dt
    rho = rho
    variable = T_fluid
  []
  [water_ins_energy_advection]
    type = INSFVEnergyAdvection
    advected_interp_method = upwind
    block = water
    variable = T_fluid
  []
  [water_ins_energy_diffusion_all]
    type = FVDiffusion
    block = water
    coeff = k
    variable = T_fluid
  []
  # Turbulence
  [water_ins_viscosity_rans_x]
    type = INSFVMixingLengthReynoldsStress
    variable = vel_x
    mixing_length = mixing_length
    momentum_component = 'x'
    u = vel_x
    v = vel_y
  []
  [water_ins_viscosity_rans_y]
    type = INSFVMixingLengthReynoldsStress
    variable = vel_y
    mixing_length = mixing_length
    momentum_component = 'y'
    u = vel_x
    v = vel_y
  []
  [water_ins_energy_rans]
    type = WCNSFVMixingLengthEnergyDiffusion
    variable = T_fluid
    cp = cp
    mixing_length = mixing_length
    schmidt_number = 1
    u = vel_x
    v = vel_y
  []
[]
[AuxKernels]
  [mixing_length]
    type = WallDistanceMixingLengthAux
    variable = mixing_length
    walls = 'water_boundary inner_cavity_water'
    execute_on = 'initial'
  []
[]
[FunctorMaterials]
  [water]
    type = ADGenericFunctorMaterial
    block = 'water'
    prop_names = 'rho    k     cp      mu alpha_wall'
    prop_values = '955.7 0.6 ${fparse cp_water_multiplier * 4181} ${fparse 7.98e-4 * mu_multiplier} 30'
  []
  [boussinesq_params]
    type = ADGenericFunctorMaterial
    prop_names = 'alpha '
    prop_values = '2.9e-3'
  []
  [water_ins_enthalpy_material]
    type = INSFVEnthalpyFunctorMaterial
    block = water
    cp = cp
    execute_on = ALWAYS
    outputs = none
    temperature = T_fluid
  []
  [total_viscosity]
    type = MixingLengthTurbulentViscosityFunctorMaterial
    u = 'vel_x'
    v = 'vel_y'
    mixing_length = mixing_length
    mu = mu
  []
[]
[FVBCs]
  [vel_x_water_boundary]
    type = INSFVNoSlipWallBC
    boundary = 'water_boundary inner_cavity_water'
    function = 0
    variable = vel_x
  []
  [vel_y_water_boundary]
    type = INSFVNoSlipWallBC
    boundary = 'water_boundary inner_cavity_water'
    function = 0
    variable = vel_y
  []
  [T_fluid_inner_cavity]
    type = FVFunctorNeumannBC
    boundary = inner_cavity_water
    functor = ${power}
    variable = T_fluid
  []
  [T_fluid_water_boundary]
    type = FVFunctorConvectiveHeatFluxBC
    boundary = water_boundary
    variable = T_fluid
    T_bulk = T_fluid
    T_solid = T_solid
    heat_transfer_coefficient = 600
    is_solid = false
  []
[]
[UserObjects]
  [ins_rhie_chow_interpolator]
    type = INSFVRhieChowInterpolator
    pressure = 'pressure'
    u = 'vel_x'
    v = 'vel_y'
    block = 'water'
  []
[]
[AuxVariables]
  # This isn't used in simulation, but useful for visualization
  [vel_z]
    type = INSFVVelocityVariable
    block = 'water'
    initial_condition = 0
  []
  [mixing_length]
    block = 'water'
    order = CONSTANT
    family = MONOMIAL
    fv = true
  []
  # This is the variable that is transferred from the main app
  [T_solid]
    block = 'concrete_hd concrete Al'
    initial_condition = 300
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  automatic_scaling = true
  off_diagonals_in_auto_scaling = true
  line_search = none
  # Direct solve works for everything small enough
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu NONZERO superlu_dist'
  nl_abs_tol = 3e-7
  nl_max_its = 10
  l_max_its = 3
  start_time = -1
  dtmax = 100
  [TimeStepper]
    type = FunctionDT
    function = 'if(t < 0.1, 0.1, t)'
  []
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
  converge_on = 'disp_x disp_y'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [lm_x]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
  [lm_y]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    incremental = false
    save_in = 'saved_x saved_y'
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
    strain = SMALL
    add_variables = false
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff1_stress]
    type = ComputeLinearElasticStress
    block = '1'
  []
  [stuff2_stress]
    type = ComputeLinearElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor'
  petsc_options_iname = '-pc_type   -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu          NONZERO               1e-12'
  line_search = 'none'
  nl_abs_tol = 1e-7
  l_max_its = 5
  nl_rel_tol = 1e-09
  start_time = -0.1
  end_time = 0.3 # 3.5
  l_tol = 1e-8
  dt = 0.1
  dtmin = 0.001
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3 4'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3 4'
    sort_by = id
  []
  [lm_x]
    type = NodalValueSampler
    variable = lm_x
    boundary = '3'
    sort_by = id
  []
  [lm_y]
    type = NodalValueSampler
    variable = lm_y
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp lm_x lm_y'
    file_base = cylinder_friction_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[Constraints]
  [weighted_gap_lm]
    type = ComputeFrictionalForceCartesianLMMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    lm_x = lm_x
    lm_y = lm_y
    variable = lm_x
    disp_x = disp_x
    disp_y = disp_y
    use_displaced_mesh = true
    correct_edge_dropping = false
    mu = 0.4
    c_t = 1.0e6
    c = 1.0e6
  []
  [x]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_x
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
  [y]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_y
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
[]
(tutorials/shield_multiphysics/inputs/step11_multiapps/step11_2d_heat_conduction.i)
# Real facility uses forced convection to cool the water tank at full power
# Need to lower power for natural convection so concrete doesn't get too hot.
power = '${fparse 5e4 / 144 * 0.5}'
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'mesh2d_coarse_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${power}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity_functor = T_fluid
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient_functor = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  # For pseudo-transient
  type = Transient
  start_time = -1
  end_time = ${units 4 h -> s}
  dtmax = 100
  [TimeStepper]
    type = FunctionDT
    function = 'if(t<0.1, 0.1, t)'
  []
  # For steady-state fixed-point iteration
  # type = Steady
  # fixed_point_max_its = 20
  # accept_on_max_fixed_point_iteration = true
  solve_type = NEWTON # Perform a Newton solve, uses AD to compute Jacobian terms
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
  nl_abs_tol = 1e-8
[]
[Positions]
  [detector_positions]
    type = FilePositions
    files = detector_positions_2d.txt
  []
[]
[MultiApps]
  [fluid]
    # For pseudo-transient
    type = TransientMultiApp
    # For steady-state fixed-point iteration
    # type = FullSolveMultiApp
    input_files = step11_2d_fluid.i
    execute_on = 'TIMESTEP_END'
    # Pass in parameter values as if from command line
    cli_args = 'power=${power}'
  []
  [detectors]
    type = FullSolveMultiApp
    input_files = 'step11_local.i'
    # Create one app at each position
    positions_objects = 'detector_positions'
    # displace the subapp output to their position in the parent app frame
    output_in_position = true
    # compute the global temperature first
    execute_on = 'TIMESTEP_END'
    # Pass in parameter values as if from command line
    cli_args = 'Outputs/console=false'
  []
[]
[Transfers]
  # transfers solid temperature to nearest node on fluid mesh
  [send_T_solid]
    type = MultiAppCopyTransfer
    to_multi_app = fluid
    source_variable = T
    variable = T_solid
  []
  # Receive fluid temperature
  [recv_T_fluid]
    type = MultiAppCopyTransfer
    from_multi_app = fluid
    source_variable = T_fluid
    variable = T_fluid
    to_blocks = 'water'
    from_blocks = 'water'
  []
  # transfers local boundary temperature to the each child app
  [send_exterior_temperature]
    type = MultiAppVariableValueSamplePostprocessorTransfer
    to_multi_app = detectors
    source_variable = T
    postprocessor = T_boundary
  []
  # transfers local flux conditions to each child app
  [send_local_flux]
    type = MultiAppVariableValueSampleTransfer
    to_multi_app = detectors
    source_variable = flux
    variable = flux
  []
  # retrieve outputs from the child apps
  [hdpe_temperature]
    type = MultiAppPostprocessorInterpolationTransfer
    from_multi_app = detectors
    postprocessor = T_hdpe_inner
    variable = T_hdpe_inner
  []
  [boron_temperature]
    type = MultiAppPostprocessorInterpolationTransfer
    from_multi_app = detectors
    postprocessor = T_boron_inner
    variable = T_boron_inner
  []
[]
[AuxVariables]
  [T_fluid]
    type = INSFVEnergyVariable
    initial_condition = 300
    block = 'water'
  []
  [flux]
    [InitialCondition]
      type = FunctionIC
      function = '1e4 * exp(-((x-3.25)^2 + (y-2.225)^2))'
    []
  []
  # We only output two fields as an example
  [T_hdpe_inner]
    family = MONOMIAL
    order = CONSTANT
    block = Al
  []
  [T_boron_inner]
    family = MONOMIAL
    order = CONSTANT
    block = Al
  []
[]
[Outputs]
  exodus = true
[]
(modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri.i)
[Mesh]
  allow_renumbering = 0
  [hex_in]
    type = FileMeshGenerator
    file = gold/abtr_mesh.e
  []
  [tmg]
    type = PeripheralTriangleMeshGenerator
    input = hex_in
    peripheral_ring_radius = 150
    peripheral_ring_num_segments = 50
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-strain.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  constraint_types = 'strain strain strain strain strain strain strain strain strain'
  targets = 'strain11 strain21 strain31 strain12 strain22 strain32 strain13 strain23 strain33'
  macro_gradient = hvar
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = NINTH
  []
[]
[ICs]
  [disp_x]
    type = RandomIC
    variable = disp_x
    min = -0.1
    max = 0.1
  []
  [disp_y]
    type = RandomIC
    variable = disp_y
    min = -0.1
    max = 0.1
  []
  [disp_z]
    type = RandomIC
    variable = disp_z
    min = -0.1
    max = 0.1
  []
  [hvar]
    type = ScalarConstantIC
    variable = hvar
    value = 0.1
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-4.0e-2*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain32]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain31]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-2*t'
  []
  [zero]
    type = ConstantFunction
    value = 0
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 20
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 0.2
[]
[Outputs]
  exodus = false
  csv = false
[]
(modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-disp.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
  scaling = 1e0
[]
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks-coarse.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
    # order = SECOND
  []
  [disp_y]
    block = '1 2'
    # order = SECOND
  []
  [frictional_normal_lm]
    block = 3
    use_dual = true
  []
  [frictional_tangential_lm]
    block = 3
    use_dual = true
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[UserObjects]
  [weighted_velocities_uo]
    type = LMWeightedVelocitiesUserObject
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    lm_variable_normal = frictional_normal_lm
    lm_variable_tangential_one = frictional_tangential_lm
    secondary_variable = disp_x
    disp_x = disp_x
    disp_y = disp_y
  []
[]
[Constraints]
  [frictional_normal_lm]
    type = ComputeFrictionalForceLMMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    variable = frictional_normal_lm
    friction_lm = frictional_tangential_lm
    disp_x = disp_x
    disp_y = disp_y
    mu = 0.1
    c = 1.0e-2
    c_t = 1.0e-1
    weighted_gap_uo = weighted_velocities_uo
    weighted_velocities_uo = weighted_velocities_uo
  []
  [normal_x]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    variable = frictional_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_velocities_uo
  []
  [normal_y]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    variable = frictional_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_velocities_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    variable = frictional_tangential_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_velocities_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 4
    secondary_subdomain = 3
    variable = frictional_tangential_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_velocities_uo
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor -snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 20
  line_search = 'none'
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
[]
(modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = one_duct.e
  []
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[AuxVariables]
  [temp]
    initial_condition = 300
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1'
    eigenstrain_names = 'thermal_expansion'
  []
[]
[BCs]
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '16'
    value = 0.0
  []
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '16'
    value = 0.0
  []
  [fix_z]
    type = DirichletBC
    variable = 'disp_z'
    boundary = '16'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '4'
      function = pressure
      factor = 80
    []
  []
[]
[VectorPostprocessors]
  [section_output]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '0 0 0'
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [thermal_expansion]
    type = ComputeThermalExpansionEigenstrain
    temperature = temp
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 0
    eigenstrain_name = 'thermal_expansion'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 0.5
[]
[Outputs]
  exodus = true
  csv = true
[]
(modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
# Test for bond-based peridynamic formulation
# for irregular grid from file mesh with varying bond constants
# Square plate with Dirichlet boundary conditions applied
# at the left, top and bottom edges
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = square.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
  [../]
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1001
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1004
    value = 0.0
  [../]
  [./bottom_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1002
    function = '-0.001*t'
  [../]
[]
[Modules/Peridynamics/Mechanics/Master]
  [./all]
    formulation = BOND
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2e5
    poissons_ratio = 0.33
  [../]
  [./force_density]
    type = ComputeSmallStrainVariableHorizonMaterialBPD
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  solve_type = PJFNK
  line_search = none
  start_time = 0
  end_time = 1
[]
[Outputs]
  file_base = 2D_irregularD_variableH_BPD
  exodus = true
[]
(modules/combined/test/tests/gap_heat_transfer_jac/two_blocks.i)
# This problem consists of two beams with different prescribed temperatures on
# the top of the top beam and the bottom of the bottom beam.  The top beam is
# fixed against vertical displacement on the top surface, and the bottom beam
# bends downward due to thermal expansion.
# This is a test of the effectiveness of the Jacobian terms coupling temperature
# and displacement for thermal contact. The Jacobian is not exactly correct,
# but is close enough that this challenging problem converges in a small number
# of nonlinear iterations using NEWTON.
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [./msh]
    type = FileMeshGenerator
    file = two_blocks.e
  []
[]
[Variables]
  [./temp]
  [../]
[]
[Kernels]
  [./heat]
    type = ADHeatConduction
    variable = temp
  [../]
[]
[Physics/SolidMechanics/QuasiStatic]
  [./all]
    strain = FINITE
    add_variables = true
    eigenstrain_names = thermal_expansion
    generate_output = 'stress_xx stress_yy stress_zz stress_yz stress_xz stress_xy'
    use_automatic_differentiation = true
  [../]
[]
[Contact]
  [./mechanical]
    primary = 4
    secondary = 5
    formulation = kinematic
    tangential_tolerance = 1e-1
    penalty = 1e10
  [../]
[]
[ThermalContact]
  [./thermal]
    type = GapHeatTransfer
    variable = temp
    primary = 4
    secondary = 5
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductivity = 1e4
    quadrature = true
  [../]
[]
[BCs]
  [./left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1
    value = 0.0
  [../]
  [./left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1
    value = 0.0
  [../]
  [./top_y]
    type = DirichletBC
    variable = disp_y
    boundary = 7
    value = 0
  [../]
  [./top_temp]
    type = DirichletBC
    variable = temp
    boundary = 7
    value = 1000.0
  [../]
  [./bot_temp]
    type = DirichletBC
    variable = temp
    boundary = 6
    value = 500.0
  [../]
[]
[Materials]
  [./density]
    type = Density
    density = 100
  [../]
  [./temp]
    type = ADHeatConductionMaterial
    thermal_conductivity = 1e5
    specific_heat = 620.0
  [../]
  [./Elasticity_tensor]
    type = ADComputeElasticityTensor
    fill_method = symmetric_isotropic
    C_ijkl = '0.3 0.5e8'
  [../]
  [./thermal_eigenstrain]
    type = ADComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-5
    stress_free_temperature = 500
    temperature = temp
    eigenstrain_name = thermal_expansion
  [../]
  [./stress]
    type = ADComputeFiniteStrainElasticStress
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Outputs]
  exodus = true
[]
[Executioner]
  automatic_scaling = true
  type = Transient
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  solve_type = NEWTON
  nl_max_its = 15
  l_tol = 1e-10
  l_max_its = 50
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  num_steps = 1
  line_search = none
[]
(test/tests/fvkernels/mms/skewness-correction/adv-diff-react/skewed.i)
a=1.1
diff=1.1
[Mesh]
  [gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  []
[]
[Variables]
  [v]
    initial_condition = 1
    type = MooseVariableFVReal
    face_interp_method = 'skewness-corrected'
  []
[]
[FVKernels]
  [diff_v]
    type = FVDiffusion
    variable = v
    coeff = ${diff}
  []
  [advection]
    type = FVAdvection
    variable = v
    velocity = '${a} ${fparse 2*a} 0'
    advected_interp_method = 'average'
  []
  [reaction]
    type = FVReaction
    variable = v
  []
  [body_v]
    type = FVBodyForce
    variable = v
    function = 'forcing'
  []
[]
[FVBCs]
  [exact]
    type = FVFunctionDirichletBC
    boundary = 'left right top bottom'
    function = 'exact'
    variable = v
  []
[]
[Functions]
  [exact]
    type = ParsedFunction
    expression = 'sin(x)*cos(y)'
  []
  [forcing]
    type = ParsedFunction
    expression = '-2*a*sin(x)*sin(y) + a*cos(x)*cos(y) + 2*diff*sin(x)*cos(y) + sin(x)*cos(y)'
    symbol_names = 'a diff'
    symbol_values = '${a} ${diff}'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  csv = true
[]
[Postprocessors]
  [./error]
    type = ElementL2Error
    variable = v
    function = exact
    outputs = 'console csv'
  [../]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
  []
[]
(modules/heat_transfer/test/tests/physics/restart/test_fv.i)
[Mesh]
  active = 'cmg'
  [cmg]
    type = CartesianMeshGenerator
    dim = 2
    dx = 10
    dy = 10
  []
  [fmg_restart]
    type = FileMeshGenerator
    file = user_ics.e
    use_for_exodus_restart = true
  []
[]
[Debug]
  show_actions=true
[]
[Physics]
  [HeatConduction]
    [FiniteVolume]
      [h1]
        temperature_name = 'T'
        # Thermal properties
        thermal_conductivity_functor = 'k0'
        specific_heat = 5
        density = 10
        # Boundary conditions
        heat_flux_boundaries = 'left right'
        boundary_heat_fluxes = '0 500'
        insulated_boundaries = 'top'
        fixed_temperature_boundaries = 'bottom'
        boundary_temperatures = '300'
      []
    []
  []
[]
[Executioner]
  type = Transient
  num_steps = 1
  verbose = true
[]
[Problem]
  solve = false
[]
[FunctorMaterials]
  [mat_k]
    type = ADGenericFunctorMaterial
    prop_names = 'k0'
    prop_values = '1'
  []
[]
[Outputs]
  # Used to set up a restart from checkpoint
  checkpoint = true
  # Used to set up a restart from exodus file
  [exodus]
    type = Exodus
    execute_on = TIMESTEP_END
  []
  # Used to check results
  csv = true
  execute_on = INITIAL
[]
[Postprocessors]
  [min_T]
    type = ElementExtremeValue
    variable = 'T'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_T]
    type = ElementExtremeValue
    variable = 'T'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
[]
(modules/solid_mechanics/examples/coal_mining/fine.i)
# Strata deformation and fracturing around a coal mine - 3D model
#
# A "half model" is used.  The mine is 400m deep and
# just the roof is studied (-400<=z<=0).  The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long.  The outer boundaries
# are 1km from the excavation boundaries.
#
# Time is meaningless in this example
# as quasi-static solutions are sought at each timestep, but
# the number of timesteps controls the resolution of the
# process.
#
# The boundary conditions for this simulation are:
#  - disp_x = 0 at x=0 and x=1150
#  - disp_y = 0 at y=-1000 and y=1000
#  - disp_z = 0 at z=-400, but there is a time-dependent
#               Young's modulus that simulates excavation
#  - wc_x = 0 at y=-1000 and y=1000
#  - wc_y = 0 at x=0 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa.  The initial stress is consistent with
# the weight force from density 2500 kg/m^3, ie, stress_zz = 0.025*z MPa
# where gravity = 10 m.s^-2 = 1E-5 MPa m^2/kg.  The maximum and minimum
# principal horizontal stresses are assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 3 MPa
# MC friction angle = 37 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
#
[Mesh]
  [file]
    type = FileMeshGenerator
    file = mesh/fine.e
  []
  [./xmin]
    input = file
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = xmin
    normal = '-1 0 0'
  [../]
  [./xmax]
    input = xmin
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = xmax
    normal = '1 0 0'
  [../]
  [./ymin]
    input = xmax
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = ymin
    normal = '0 -1 0'
  [../]
  [./ymax]
    input = ymin
    type = SideSetsAroundSubdomainGenerator
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = ymax
    normal = '0 1 0'
  [../]
  [./zmax]
    input = ymax
    type = SideSetsAroundSubdomainGenerator
    block = 30
    new_boundary = zmax
    normal = '0 0 1'
  [../]
  [./zmin]
    input = zmax
    type = SideSetsAroundSubdomainGenerator
    block = 2
    new_boundary = zmin
    normal = '0 0 -1'
  [../]
  [./excav]
    type = SubdomainBoundingBoxGenerator
    input = zmin
    block_id = 1
    bottom_left = '0 0 -400'
    top_right = '150 1000 -397'
  [../]
  [./roof]
    type = SideSetsAroundSubdomainGenerator
    block = 1
    input = excav
    new_boundary = roof
    normal = '0 0 1'
  [../]
[]
[GlobalParams]
  perform_finite_strain_rotations = false
  displacements = 'disp_x disp_y disp_z'
  Cosserat_rotations = 'wc_x wc_y wc_z'
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
  [./disp_z]
  [../]
  [./wc_x]
  [../]
  [./wc_y]
  [../]
[]
[Kernels]
  [./cx_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  [../]
  [./cy_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  [../]
  [./cz_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_z
    component = 2
  [../]
  [./x_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_x
    displacements = 'wc_x wc_y wc_z'
    component = 0
    base_name = couple
  [../]
  [./y_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_y
    displacements = 'wc_x wc_y wc_z'
    component = 1
    base_name = couple
  [../]
  [./x_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_x
    component = 0
  [../]
  [./y_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_y
    component = 1
  [../]
  [./gravity]
    type = Gravity
    use_displaced_mesh = false
    variable = disp_z
    value = -10E-6 # remember this is in MPa
  [../]
[]
[AuxVariables]
  [./wc_z]
  [../]
  [./stress_xx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_xy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_xz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_yz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zx]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zy]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_zz]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_shear]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_tensile]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_shear]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_tensile]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_shear_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./wp_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_shear_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./mc_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[AuxKernels]
  [./stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
  [../]
  [./stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
  [../]
  [./stress_xz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xz
    index_i = 0
    index_j = 2
  [../]
  [./stress_yx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yx
    index_i = 1
    index_j = 0
  [../]
  [./stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
  [../]
  [./stress_yz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yz
    index_i = 1
    index_j = 2
  [../]
  [./stress_zx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zx
    index_i = 2
    index_j = 0
  [../]
  [./stress_zy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zy
    index_i = 2
    index_j = 1
  [../]
  [./stress_zz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zz
    index_i = 2
    index_j = 2
  [../]
  [./mc_shear]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_internal_parameter
    variable = mc_shear
  [../]
  [./mc_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = mc_plastic_internal_parameter
    variable = mc_tensile
  [../]
  [./wp_shear]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_internal_parameter
    variable = wp_shear
  [../]
  [./wp_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_internal_parameter
    variable = wp_tensile
  [../]
  [./mc_shear_f]
    type = MaterialStdVectorAux
    index = 6
    property = mc_plastic_yield_function
    variable = mc_shear_f
  [../]
  [./mc_tensile_f]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_yield_function
    variable = mc_tensile_f
  [../]
  [./wp_shear_f]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_yield_function
    variable = wp_shear_f
  [../]
  [./wp_tensile_f]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_yield_function
    variable = wp_tensile_f
  [../]
[]
[BCs]
  [./no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'xmin xmax'
    value = 0.0
  [../]
  [./no_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'ymin ymax'
    value = 0.0
  [../]
  [./no_z]
    type = DirichletBC
    variable = disp_z
    boundary = zmin
    value = 0.0
  [../]
  [./no_wc_x]
    type = DirichletBC
    variable = wc_x
    boundary = 'ymin ymax'
    value = 0.0
  [../]
  [./no_wc_y]
    type = DirichletBC
    variable = wc_y
    boundary = 'xmin xmax'
    value = 0.0
  [../]
  [./roof]
    type = StickyBC
    variable = disp_z
    min_value = -3.0
    boundary = roof
  [../]
[]
[Functions]
  [./ini_xx]
    type = ParsedFunction
    expression = '0.8*2500*10E-6*z'
  [../]
  [./ini_zz]
    type = ParsedFunction
    expression = '2500*10E-6*z'
  [../]
  [./excav_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval slope'
    symbol_values = '100.0   0    1000.0 1E-9 1 10'
    # excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
    # slope is the distance over which the modulus reduces from maxval to minval
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
  [../]
  [./density_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval'
    symbol_values = '100.0   0    1000.0 0 2500'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
  [../]
[]
[UserObjects]
  [./mc_coh_strong_harden]
    type = SolidMechanicsHardeningExponential
    value_0 = 2.99 # MPa
    value_residual = 3.01 # MPa
    rate = 1.0
  [../]
  [./mc_fric]
    type = SolidMechanicsHardeningConstant
    value = 0.65 # 37deg
  [../]
  [./mc_dil]
    type = SolidMechanicsHardeningConstant
    value = 0.15 # 8deg
  [../]
  [./mc_tensile_str_strong_harden]
    type = SolidMechanicsHardeningExponential
    value_0 = 1.0 # MPa
    value_residual = 1.0 # MPa
    rate = 1.0
  [../]
  [./mc_compressive_str]
    type = SolidMechanicsHardeningCubic
    value_0 = 100 # Large!
    value_residual = 100
    internal_limit = 0.1
  [../]
  [./wp_coh_harden]
    type = SolidMechanicsHardeningCubic
    value_0 = 0.1
    value_residual = 0.1
    internal_limit = 10
  [../]
  [./wp_tan_fric]
    type = SolidMechanicsHardeningConstant
    value = 0.36 # 20deg
  [../]
  [./wp_tan_dil]
    type = SolidMechanicsHardeningConstant
    value = 0.18 # 10deg
  [../]
  [./wp_tensile_str_harden]
    type = SolidMechanicsHardeningCubic
    value_0 = 0.1
    value_residual = 0.1
    internal_limit = 10
  [../]
  [./wp_compressive_str_soften]
    type = SolidMechanicsHardeningCubic
    value_0 = 100
    value_residual = 1
    internal_limit = 1.0
  [../]
[]
[Materials]
  [./elasticity_tensor_0]
    type = ComputeLayeredCosseratElasticityTensor
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
  [../]
  [./elasticity_tensor_1]
    type = ComputeLayeredCosseratElasticityTensor
    block = 1
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
    elasticity_tensor_prefactor = excav_sideways
  [../]
  [./strain]
    type = ComputeCosseratIncrementalSmallStrain
    eigenstrain_names = ini_stress
  [../]
  [./ini_stress]
    type = ComputeEigenstrainFromInitialStress
    eigenstrain_name = ini_stress
    initial_stress = 'ini_xx 0 0  0 ini_xx 0  0 0 ini_zz'
  [../]
  [./stress_0]
    type = ComputeMultipleInelasticCosseratStress
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    inelastic_models = 'mc wp'
    cycle_models = true
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  [../]
  [./stress_1]
    type = ComputeMultipleInelasticCosseratStress
    block = 1
    inelastic_models = ''
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  [../]
  [./mc]
    type = CappedMohrCoulombCosseratStressUpdate
    warn_about_precision_loss = false
    host_youngs_modulus = 8E3
    host_poissons_ratio = 0.25
    base_name = mc
    tensile_strength = mc_tensile_str_strong_harden
    compressive_strength = mc_compressive_str
    cohesion = mc_coh_strong_harden
    friction_angle = mc_fric
    dilation_angle = mc_dil
    max_NR_iterations = 100000
    smoothing_tol = 0.1 # MPa  # Must be linked to cohesion
    yield_function_tol = 1E-9 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0
  [../]
  [./wp]
    type = CappedWeakPlaneCosseratStressUpdate
    warn_about_precision_loss = false
    base_name = wp
    cohesion = wp_coh_harden
    tan_friction_angle = wp_tan_fric
    tan_dilation_angle = wp_tan_dil
    tensile_strength = wp_tensile_str_harden
    compressive_strength = wp_compressive_str_soften
    max_NR_iterations = 10000
    tip_smoother = 0.1
    smoothing_tol = 0.1 # MPa  # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
    yield_function_tol = 1E-11 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0E-3
  [../]
  [./density_0]
    type = GenericConstantMaterial
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    prop_names = density
    prop_values = 2500
  [../]
  [./density_1]
    type = GenericFunctionMaterial
    block = 1
    prop_names = density
    prop_values = density_sideways
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [./min_roof_disp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = disp_z
  [../]
  [./min_surface_disp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = disp_z
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason'
  petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
  petsc_options_value = ' bjacobi  gmres     200'
  line_search = bt
  nl_abs_tol = 1e-3
  nl_rel_tol = 1e-5
  l_max_its = 30
  nl_max_its = 1000
  start_time = 0.0
  dt = 0.5
  end_time = 100.0
[]
[Outputs]
  time_step_interval = 1
  print_linear_residuals = false
  exodus = true
  csv = true
  console = true
[]
(modules/peridynamics/test/tests/mesh/2D_convert_one.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = 1
    #blocks_as_fe = 2
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/contact/test/tests/pdass_problems/frictional_bouncing_block_action.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks.e
  []
  allow_renumbering = false
  uniform_refine = 0 # 1,2
  patch_update_strategy = always
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    generate_output = 'stress_xx stress_yy'
    block = '1 2'
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e3
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
[]
[Contact]
  [frictional]
    primary = 20
    secondary = 10
    formulation = mortar
    model = coulomb
    friction_coefficient = 0.4
    c_normal = 1.0e1
    c_tangential = 1.0e1
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
  []
  [topy]
    type = ADFunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 20 * t) + ${offset}'
    preset = false
  []
  [leftx]
    type = ADFunctionDirichletBC
    variable = disp_x
    boundary = 30
    function = '2e-2 * t'
    # function = '0'
    preset = false
  []
[]
[Executioner]
  type = Transient
  end_time = 7 # 70
  dt = 0.25 # 0.1 for finer meshes (uniform_refine)
  dtmin = .01
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 40
  line_search = 'basic'
  snesmf_reuse_base = false
  nl_abs_tol = 1e-9
  nl_rel_tol = 1e-9
  l_tol = 1e-07 # Tightening l_tol can help with friction
[]
[Debug]
  show_var_residual_norms = true
[]
[VectorPostprocessors]
  [cont_press]
    type = NodalValueSampler
    variable = frictional_normal_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
  [friction]
    type = NodalValueSampler
    variable = frictional_tangential_lm
    boundary = '10'
    sort_by = x
    execute_on = FINAL
  []
[]
[Outputs]
  [checkfile]
    type = CSV
    show = 'cont_press friction'
    start_time = 0.0
    execute_vector_postprocessors_on = FINAL
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = 'num_nl cumulative_nli contact cumulative_li num_l'
  [num_nl]
    type = NumNonlinearIterations
  []
  [num_l]
    type = NumLinearIterations
  []
  [cumulative_nli]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
  [cumulative_li]
    type = CumulativeValuePostprocessor
    postprocessor = num_l
  []
  [contact]
    type = ContactDOFSetSize
    variable = frictional_normal_lm
    subdomain = 'frictional_secondary_subdomain'
    execute_on = 'nonlinear timestep_end'
  []
[]
(modules/porous_flow/examples/coal_mining/fine_with_fluid.i)
#################################################################
#
#  NOTE:
#  The mesh for this model is too large for the MOOSE repository
#  so is kept in the the large_media submodule
#
#################################################################
#
# Strata deformation and fluid flow aaround a coal mine - 3D model
#
# A "half model" is used.  The mine is 400m deep and
# just the roof is studied (-400<=z<=0).  The mining panel
# sits between 0<=x<=150, and 0<=y<=1000, so this simulates
# a coal panel that is 300m wide and 1000m long.  The outer boundaries
# are 1km from the excavation boundaries.
#
# The excavation takes 0.5 years.
#
# The boundary conditions for this simulation are:
#  - disp_x = 0 at x=0 and x=1150
#  - disp_y = 0 at y=-1000 and y=1000
#  - disp_z = 0 at z=-400, but there is a time-dependent
#               Young modulus that simulates excavation
#  - wc_x = 0 at y=-1000 and y=1000
#  - wc_y = 0 at x=0 and x=1150
#  - no flow at x=0, z=-400 and z=0
#  - fixed porepressure at y=-1000, y=1000 and x=1150
# That is, rollers on the sides, free at top,
# and prescribed at bottom in the unexcavated portion.
#
# A single-phase unsaturated fluid is used.
#
# The small strain formulation is used.
#
# All stresses are measured in MPa, and time units are measured in years.
#
# The initial porepressure is hydrostatic with P=0 at z=0, so
# Porepressure ~ - 0.01*z MPa, where the fluid has density 1E3 kg/m^3 and
# gravity = = 10 m.s^-2 = 1E-5 MPa m^2/kg.
# To be more accurate, i use
# Porepressure = -bulk * log(1 + g*rho0*z/bulk)
# where bulk=2E3 MPa and rho0=1Ee kg/m^3.
# The initial stress is consistent with the weight force from undrained
# density 2500 kg/m^3, and fluid porepressure, and a Biot coefficient of 0.7, ie,
# stress_zz^effective = 0.025*z + 0.7 * initial_porepressure
# The maximum and minimum principal horizontal effective stresses are
# assumed to be equal to 0.8*stress_zz.
#
# Material properties:
# Young's modulus = 8 GPa
# Poisson's ratio = 0.25
# Cosserat layer thickness = 1 m
# Cosserat-joint normal stiffness = large
# Cosserat-joint shear stiffness = 1 GPa
# MC cohesion = 2 MPa
# MC friction angle = 35 deg
# MC dilation angle = 8 deg
# MC tensile strength = 1 MPa
# MC compressive strength = 100 MPa
# WeakPlane cohesion = 0.1 MPa
# WeakPlane friction angle = 30 deg
# WeakPlane dilation angle = 10 deg
# WeakPlane tensile strength = 0.1 MPa
# WeakPlane compressive strength = 100 MPa softening to 1 MPa at strain = 1
# Fluid density at zero porepressure = 1E3 kg/m^3
# Fluid bulk modulus = 2E3 MPa
# Fluid viscosity = 1.1E-3 Pa.s = 1.1E-9 MPa.s = 3.5E-17 MPa.year
#
[GlobalParams]
  perform_finite_strain_rotations = false
  displacements = 'disp_x disp_y disp_z'
  Cosserat_rotations = 'wc_x wc_y wc_z'
  PorousFlowDictator = dictator
  biot_coefficient = 0.7
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = fine.e
  []
  [xmin]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = xmin
    normal = '-1 0 0'
    input = file
  []
  [xmax]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = xmax
    normal = '1 0 0'
    input = xmin
  []
  [ymin]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = ymin
    normal = '0 -1 0'
    input = xmax
  []
  [ymax]
    type = SideSetsAroundSubdomainGenerator
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    new_boundary = ymax
    normal = '0 1 0'
    input = ymin
  []
  [zmax]
    type = SideSetsAroundSubdomainGenerator
    block = 30
    new_boundary = zmax
    normal = '0 0 1'
    input = ymax
  []
  [zmin]
    type = SideSetsAroundSubdomainGenerator
    block = 2
    new_boundary = zmin
    normal = '0 0 -1'
    input = zmax
  []
  [excav]
    type = SubdomainBoundingBoxGenerator
    input = zmin
    block_id = 1
    bottom_left = '0 0 -400'
    top_right = '150 1000 -397'
  []
  [roof]
    type = SideSetsBetweenSubdomainsGenerator
    primary_block = 3
    paired_block = 1
    input = excav
    new_boundary = roof
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [wc_x]
  []
  [wc_y]
  []
  [porepressure]
    scaling = 1E-5
  []
[]
[ICs]
  [porepressure]
    type = FunctionIC
    variable = porepressure
    function = ini_pp
  []
[]
[Kernels]
  [cx_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  []
  [cy_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  []
  [cz_elastic]
    type = CosseratStressDivergenceTensors
    use_displaced_mesh = false
    variable = disp_z
    component = 2
  []
  [x_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_x
    displacements = 'wc_x wc_y wc_z'
    component = 0
    base_name = couple
  []
  [y_couple]
    type = StressDivergenceTensors
    use_displaced_mesh = false
    variable = wc_y
    displacements = 'wc_x wc_y wc_z'
    component = 1
    base_name = couple
  []
  [x_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_x
    component = 0
  []
  [y_moment]
    type = MomentBalancing
    use_displaced_mesh = false
    variable = wc_y
    component = 1
  []
  [gravity]
    type = Gravity
    use_displaced_mesh = false
    variable = disp_z
    value = -10E-6 # remember this is in MPa
  []
  [poro_x]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    variable = disp_x
    component = 0
  []
  [poro_y]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    variable = disp_y
    component = 1
  []
  [poro_z]
    type = PorousFlowEffectiveStressCoupling
    use_displaced_mesh = false
    component = 2
    variable = disp_z
  []
  [poro_vol_exp]
    type = PorousFlowMassVolumetricExpansion
    use_displaced_mesh = false
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    variable = porepressure
    fluid_component = 0
  []
  [mass0]
    type = PorousFlowMassTimeDerivative
    use_displaced_mesh = false
    fluid_component = 0
    variable = porepressure
  []
  [flux]
    type = PorousFlowAdvectiveFlux
    use_displaced_mesh = false
    variable = porepressure
    gravity = '0 0 -10E-6'
    fluid_component = 0
  []
[]
[AuxVariables]
  [saturation]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [darcy_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [porosity]
    order = CONSTANT
    family = MONOMIAL
  []
  [wc_z]
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zx]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zy]
    order = CONSTANT
    family = MONOMIAL
  []
  [total_strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [perm_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_shear]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_tensile]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_shear]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_tensile]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_shear_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [wp_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_shear_f]
    order = CONSTANT
    family = MONOMIAL
  []
  [mc_tensile_f]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [saturation_water]
    type = PorousFlowPropertyAux
    variable = saturation
    property = saturation
    phase = 0
    execute_on = timestep_end
  []
  [darcy_x]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_x
    gravity = '0 0 -10E-6'
    component = x
  []
  [darcy_y]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_y
    gravity = '0 0 -10E-6'
    component = y
  []
  [darcy_z]
    type = PorousFlowDarcyVelocityComponent
    variable = darcy_z
    gravity = '0 0 -10E-6'
    component = z
  []
  [porosity]
    type = PorousFlowPropertyAux
    property = porosity
    variable = porosity
    execute_on = timestep_end
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yx
    index_i = 1
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [stress_zx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zx
    index_i = 2
    index_j = 0
    execute_on = timestep_end
  []
  [stress_zy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zy
    index_i = 2
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_xx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_xy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_xz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_yx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yx
    index_i = 1
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_yy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_yz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [total_strain_zx]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zx
    index_i = 2
    index_j = 0
    execute_on = timestep_end
  []
  [total_strain_zy]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zy
    index_i = 2
    index_j = 1
    execute_on = timestep_end
  []
  [total_strain_zz]
    type = RankTwoAux
    rank_two_tensor = total_strain
    variable = total_strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [perm_xx]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_xx
    row = 0
    column = 0
    execute_on = timestep_end
  []
  [perm_yy]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_yy
    row = 1
    column = 1
    execute_on = timestep_end
  []
  [perm_zz]
    type = PorousFlowPropertyAux
    property = permeability
    variable = perm_zz
    row = 2
    column = 2
    execute_on = timestep_end
  []
  [mc_shear]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_internal_parameter
    variable = mc_shear
    execute_on = timestep_end
  []
  [mc_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = mc_plastic_internal_parameter
    variable = mc_tensile
    execute_on = timestep_end
  []
  [wp_shear]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_internal_parameter
    variable = wp_shear
    execute_on = timestep_end
  []
  [wp_tensile]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_internal_parameter
    variable = wp_tensile
    execute_on = timestep_end
  []
  [mc_shear_f]
    type = MaterialStdVectorAux
    index = 6
    property = mc_plastic_yield_function
    variable = mc_shear_f
    execute_on = timestep_end
  []
  [mc_tensile_f]
    type = MaterialStdVectorAux
    index = 0
    property = mc_plastic_yield_function
    variable = mc_tensile_f
    execute_on = timestep_end
  []
  [wp_shear_f]
    type = MaterialStdVectorAux
    index = 0
    property = wp_plastic_yield_function
    variable = wp_shear_f
    execute_on = timestep_end
  []
  [wp_tensile_f]
    type = MaterialStdVectorAux
    index = 1
    property = wp_plastic_yield_function
    variable = wp_tensile_f
    execute_on = timestep_end
  []
[]
[BCs]
  [no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'xmin xmax'
    value = 0.0
  []
  [no_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'ymin ymax'
    value = 0.0
  []
  [no_z]
    type = DirichletBC
    variable = disp_z
    boundary = zmin
    value = 0.0
  []
  [no_wc_x]
    type = DirichletBC
    variable = wc_x
    boundary = 'ymin ymax'
    value = 0.0
  []
  [no_wc_y]
    type = DirichletBC
    variable = wc_y
    boundary = 'xmin xmax'
    value = 0.0
  []
  [fix_porepressure]
    type = FunctionDirichletBC
    variable = porepressure
    boundary = 'ymin ymax xmax'
    function = ini_pp
  []
  [roof_porepressure]
    type = PorousFlowPiecewiseLinearSink
    variable = porepressure
    pt_vals = '-1E3 1E3'
    multipliers = '-1 1'
    fluid_phase = 0
    flux_function = roof_conductance
    boundary = roof
  []
  [roof]
    type = StickyBC
    variable = disp_z
    min_value = -3.0
    boundary = roof
  []
[]
[Functions]
  [ini_pp]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0'
    symbol_values = '2E3 0.0 1E-5 1E3'
    expression = '-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)'
  []
  [ini_xx]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0 biot'
    symbol_values = '2E3 0.0 1E-5 1E3  0.7'
    expression = '0.8*(2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk)))'
  []
  [ini_zz]
    type = ParsedFunction
    symbol_names = 'bulk p0 g    rho0 biot'
    symbol_values = '2E3 0.0 1E-5 1E3  0.7'
    expression = '2500*10E-6*z+biot*(-bulk*log(exp(-p0/bulk)+g*rho0*z/bulk))'
  []
  [excav_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval slope'
    symbol_values = '0.5   0    1000.0 1E-9 1 10'
    # excavation face at ymin+(ymax-ymin)*min(t/end_t,1)
    # slope is the distance over which the modulus reduces from maxval to minval
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,if(y<ymin+(ymax-ymin)*min(t/end_t,1)+slope,minval+(maxval-minval)*(y-(ymin+(ymax-ymin)*min(t/end_t,1)))/slope,maxval))'
  []
  [density_sideways]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax  minval maxval'
    symbol_values = '0.5   0    1000.0 0 2500'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),minval,maxval)'
  []
  [roof_conductance]
    type = ParsedFunction
    symbol_names = 'end_t ymin ymax   maxval minval'
    symbol_values = '0.5   0    1000.0 1E7      0'
    expression = 'if(y<ymin+(ymax-ymin)*min(t/end_t,1),maxval,minval)'
  []
[]
[UserObjects]
  [dictator]
    type = PorousFlowDictator
    porous_flow_vars = 'porepressure disp_x disp_y disp_z'
    number_fluid_phases = 1
    number_fluid_components = 1
  []
  [pc]
    type = PorousFlowCapillaryPressureVG
    m = 0.5
    alpha = 1 # MPa^-1
  []
  [mc_coh_strong_harden]
    type = TensorMechanicsHardeningExponential
    value_0 = 1.99 # MPa
    value_residual = 2.01 # MPa
    rate = 1.0
  []
  [mc_fric]
    type = TensorMechanicsHardeningConstant
    value = 0.61 # 35deg
  []
  [mc_dil]
    type = TensorMechanicsHardeningConstant
    value = 0.15 # 8deg
  []
  [mc_tensile_str_strong_harden]
    type = TensorMechanicsHardeningExponential
    value_0 = 1.0 # MPa
    value_residual = 1.0 # MPa
    rate = 1.0
  []
  [mc_compressive_str]
    type = TensorMechanicsHardeningCubic
    value_0 = 100 # Large!
    value_residual = 100
    internal_limit = 0.1
  []
  [wp_coh_harden]
    type = TensorMechanicsHardeningCubic
    value_0 = 0.05
    value_residual = 0.05
    internal_limit = 10
  []
  [wp_tan_fric]
    type = TensorMechanicsHardeningConstant
    value = 0.26 # 15deg
  []
  [wp_tan_dil]
    type = TensorMechanicsHardeningConstant
    value = 0.18 # 10deg
  []
  [wp_tensile_str_harden]
    type = TensorMechanicsHardeningCubic
    value_0 = 0.05
    value_residual = 0.05
    internal_limit = 10
  []
  [wp_compressive_str_soften]
    type = TensorMechanicsHardeningCubic
    value_0 = 100
    value_residual = 1
    internal_limit = 1.0
  []
[]
[FluidProperties]
  [simple_fluid]
    type = SimpleFluidProperties
    bulk_modulus = 2E3
    density0 = 1000
    thermal_expansion = 0
    viscosity = 3.5E-17
  []
[]
[Materials]
  [temperature]
    type = PorousFlowTemperature
  []
  [eff_fluid_pressure]
    type = PorousFlowEffectiveFluidPressure
  []
  [vol_strain]
    type = PorousFlowVolumetricStrain
  []
  [ppss]
    type = PorousFlow1PhaseP
    porepressure = porepressure
    capillary_pressure = pc
  []
  [massfrac]
    type = PorousFlowMassFraction
  []
  [simple_fluid]
    type = PorousFlowSingleComponentFluid
    fp = simple_fluid
    phase = 0
  []
  [porosity_for_aux]
    type = PorousFlowPorosity
    at_nodes = false
    fluid = true
    mechanical = true
    ensure_positive = true
    porosity_zero = 0.02
    solid_bulk = 5.3333E3
  []
  [porosity_bulk]
    type = PorousFlowPorosity
    fluid = true
    mechanical = true
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    ensure_positive = true
    porosity_zero = 0.02
    solid_bulk = 5.3333E3
  []
  [porosity_excav]
    type = PorousFlowPorosityConst
    block = 1
    porosity = 1.0
  []
  [permeability_bulk]
    type = PorousFlowPermeabilityKozenyCarman
    block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    poroperm_function = kozeny_carman_phi0
    k0 = 1E-15
    phi0 = 0.02
    n = 2
    m = 2
  []
  [permeability_excav]
    type = PorousFlowPermeabilityConst
    block = 1
    permeability = '0 0 0   0 0 0   0 0 0'
  []
  [relperm]
    type = PorousFlowRelativePermeabilityCorey
    n = 4
    s_res = 0.4
    sum_s_res = 0.4
    phase = 0
  []
  [elasticity_tensor_0]
    type = ComputeLayeredCosseratElasticityTensor
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
  []
  [elasticity_tensor_1]
    type = ComputeLayeredCosseratElasticityTensor
    block = 1
    young = 8E3 # MPa
    poisson = 0.25
    layer_thickness = 1.0
    joint_normal_stiffness = 1E9 # huge
    joint_shear_stiffness = 1E3 # MPa
    elasticity_tensor_prefactor = excav_sideways
  []
  [strain]
    type = ComputeCosseratIncrementalSmallStrain
    eigenstrain_names = ini_stress
  []
  [ini_stress]
    type = ComputeEigenstrainFromInitialStress
    eigenstrain_name = ini_stress
    initial_stress = 'ini_xx 0 0  0 ini_xx 0  0 0 ini_zz'
  []
  [stress_0]
    type = ComputeMultipleInelasticCosseratStress
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    inelastic_models = 'mc wp'
    cycle_models = true
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  []
  [stress_1]
    type = ComputeMultipleInelasticCosseratStress
    block = 1
    inelastic_models = ''
    relative_tolerance = 2.0
    absolute_tolerance = 1E6
    max_iterations = 1
    tangent_operator = nonlinear
    perform_finite_strain_rotations = false
  []
  [mc]
    type = CappedMohrCoulombCosseratStressUpdate
    warn_about_precision_loss = false
    host_youngs_modulus = 8E3
    host_poissons_ratio = 0.25
    base_name = mc
    tensile_strength = mc_tensile_str_strong_harden
    compressive_strength = mc_compressive_str
    cohesion = mc_coh_strong_harden
    friction_angle = mc_fric
    dilation_angle = mc_dil
    max_NR_iterations = 100000
    smoothing_tol = 0.1 # MPa  # Must be linked to cohesion
    yield_function_tol = 1E-9 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0
  []
  [wp]
    type = CappedWeakPlaneCosseratStressUpdate
    warn_about_precision_loss = false
    base_name = wp
    cohesion = wp_coh_harden
    tan_friction_angle = wp_tan_fric
    tan_dilation_angle = wp_tan_dil
    tensile_strength = wp_tensile_str_harden
    compressive_strength = wp_compressive_str_soften
    max_NR_iterations = 10000
    tip_smoother = 0.05
    smoothing_tol = 0.05 # MPa  # Note, this must be tied to cohesion, otherwise get no possible return at cone apex
    yield_function_tol = 1E-11 # MPa.  this is essentially the lowest possible without lots of precision loss
    perfect_guess = true
    min_step_size = 1.0E-3
  []
  [undrained_density_0]
    type = GenericConstantMaterial
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    prop_names = density
    prop_values = 2500
  []
  [undrained_density_1]
    type = GenericFunctionMaterial
    block = 1
    prop_names = density
    prop_values = density_sideways
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [min_roof_disp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = disp_z
  []
  [min_roof_pp]
    type = NodalExtremeValue
    boundary = roof
    value_type = min
    variable = porepressure
  []
  [min_surface_disp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = disp_z
  []
  [min_surface_pp]
    type = NodalExtremeValue
    boundary = zmax
    value_type = min
    variable = porepressure
  []
  [max_perm_zz]
    type = ElementExtremeValue
     block = '2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30'
    variable = perm_zz
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason'
  # best overall
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  # best if you don't have mumps:
  #petsc_options_iname = '-pc_type -pc_asm_overlap -sub_pc_type -ksp_type -ksp_gmres_restart'
  #petsc_options_value = ' asm      2              lu            gmres     200'
  # very basic:
  #petsc_options_iname = '-pc_type -ksp_type -ksp_gmres_restart'
  #petsc_options_value = ' bjacobi  gmres     200'
  line_search = bt
  nl_abs_tol = 1e-3
  nl_rel_tol = 1e-5
  l_max_its = 200
  nl_max_its = 30
  start_time = 0.0
  dt = 0.0025
  end_time = 0.5
[]
[Outputs]
  time_step_interval = 1
  print_linear_residuals = true
  exodus = true
  csv = true
  console = true
[]
(modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFE.i)
[Mesh]
  second_order = true
  inactive = 'mesh internal_boundary_bot internal_boundary_top'
  [mesh]
    type = CartesianMeshGenerator
    dim = 2
    dx = '1'
    dy = '1 1 1'
    ix = '5'
    iy = '5 5 5'
    subdomain_id = '1
                    2
                    3'
  []
  [internal_boundary_bot]
    type = SideSetsBetweenSubdomainsGenerator
    input = mesh
    new_boundary = 'internal_bot'
    primary_block = 1
    paired_block = 2
  []
  [internal_boundary_top]
    type = SideSetsBetweenSubdomainsGenerator
    input = internal_boundary_bot
    new_boundary = 'internal_top'
    primary_block = 2
    paired_block = 3
  []
  [diverging_mesh]
    type = FileMeshGenerator
    file = 'expansion_quad.e'
  []
[]
[Modules]
  [IncompressibleNavierStokes]
    equation_type = steady-state
    # no slip BCs
    velocity_boundary = 'bottom right left'
    velocity_function = '0 1    0 0   0 0'
    pressure_boundary = 'top'
    pressure_function = '1'
    density_name = rho
    dynamic_viscosity_name = mu
    integrate_p_by_parts = false
    order = SECOND
  []
[]
[Materials]
  [const]
    type = GenericConstantMaterial
    block = '1 2 3'
    prop_names = 'rho mu'
    prop_values = '1  1'
  []
[]
[FunctorMaterials]
  [ADconst]
    type = ADGenericFunctorMaterial
    block = '1 2 3'
    prop_names = 'rho_ad'
    prop_values = '1'
  []
[]
[Preconditioning]
  [SMP_PJFNK]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-ksp_gmres_restart -pc_type -sub_pc_type -sub_pc_factor_levels'
  petsc_options_value = '300                bjacobi  ilu          4'
  line_search = none
  nl_rel_tol = 1e-12
  nl_max_its = 6
  l_tol = 1e-6
  l_max_its = 300
[]
[Postprocessors]
  [inlet_mass_constant]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = 1
  []
  [inlet_mass_matprop]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = vel_x
    vel_y = vel_y
    advected_mat_prop = 'rho_ad'
  []
  [mid1_mass]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = vel_x
    vel_y = vel_y
  []
  [other_mid1_mass]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = vel_x
    vel_y = vel_y
    advected_mat_prop = 'rho_ad'
  []
  [mid2_mass]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = vel_x
    vel_y = vel_y
  []
  [outlet_mass]
    type = VolumetricFlowRate
    boundary = top
    vel_x = vel_x
    vel_y = vel_y
  []
  [inlet_momentum_x]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_x
  []
  [mid1_momentum_x]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_x
  []
  [mid2_momentum_x]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_x
  []
  [outlet_momentum_x]
    type = VolumetricFlowRate
    boundary = top
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_x
  []
  [inlet_momentum_y]
    type = VolumetricFlowRate
    boundary = bottom
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_y
  []
  [mid1_momentum_y]
    type = VolumetricFlowRate
    boundary = internal_bot
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_y
  []
  [mid2_momentum_y]
    type = VolumetricFlowRate
    boundary = internal_top
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_y
  []
  [outlet_momentum_y]
    type = VolumetricFlowRate
    boundary = top
    vel_x = vel_x
    vel_y = vel_y
    advected_variable = vel_y
  []
[]
[Outputs]
  exodus = false
  csv = true
  inactive = 'console_mass console_momentum_x console_momentum_y'
  [console_mass]
    type = Console
    start_step = 1
    show = 'inlet_mass_variable inlet_mass_constant inlet_mass_matprop mid1_mass mid2_mass outlet_mass'
  []
  [console_momentum_x]
    type = Console
    start_step = 1
    show = 'inlet_momentum_x mid1_momentum_x mid2_momentum_x outlet_momentum_x'
  []
  [console_momentum_y]
    type = Console
    start_step = 1
    show = 'inlet_momentum_y mid1_momentum_y mid2_momentum_y outlet_momentum_y'
  []
[]
(modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc_nonplanar.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nonplanar.e
  []
  [subdomains]
    type = ParsedSubdomainMeshGenerator
    input = file
    combinatorial_geometry = 'x > 0.5'
    block_id = 1
  []
  [internal_sideset]
    type = SideSetsBetweenSubdomainsGenerator
    input = subdomains
    primary_block = 0
    paired_block = 1
    new_boundary = internal
  []
[]
[UserObjects/study]
  type = RepeatableRayStudy
  start_points = '0 0 0'
  directions = '1 1 1'
  names = 'ray'
  warn_non_planar = false
  use_internal_sidesets = true
  execute_on = initial
  tolerate_failure = true
[]
[RayBCs]
  [kill]
    type = KillRayBC
    boundary = 'top right bottom left front back'
  []
  [reflect_internal]
    type = ReflectRayBC
    boundary = internal
  []
[]
[RayKernels/null]
  type = NullRayKernel
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
(test/tests/auxkernels/projection_aux/2d_and_lower_d.i)
[Mesh]
  [cube]
    type = FileMeshGenerator
    file = 'mesh/cube.e'
  []
  [remove_low_low_D]
    type = BlockDeletionGenerator
    input = cube
    block = 2
  []
  second_order = true
  allow_renumbering = false
[]
[AuxVariables]
  [u_elem]
    [InitialCondition]
      type = FunctionIC
      function = 'x + y * x'
    []
    family = MONOMIAL
    order = CONSTANT
  []
  [u_nodal]
    [InitialCondition]
      type = FunctionIC
      function = 'x + y * x'
    []
  []
  [v_high]
    order = SECOND
  []
  [v_low]
    block = 0
  []
[]
[AuxKernels]
  [node_to_node_higher_order]
    type = ProjectionAux
    variable = v_high
    v = u_nodal
    execute_on = 'INITIAL TIMESTEP_END'
    # block restrict the lower D blocks 1 & 2 away
    block = 0
  []
  [elem_to_nodal]
    type = ProjectionAux
    variable = v_low
    v = u_elem
    execute_on = 'INITIAL TIMESTEP_END'
    # block restrict the lower D blocks 1 & 2 away
    block = 0
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  csv = true
  exodus = true
  show = 'v_high v_low'
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_2d.i)
# 2D with mixed conditions on stress/strain
[GlobalParams]
  displacements = 'disp_x disp_y'
  large_kinematics = false
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '2d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0'
    fixed_normal = true
    new_boundary = 'left right bottom top'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [hvar]
    family = SCALAR
    order = THIRD
  []
[]
[AuxVariables]
  [pk1_stress_xx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xz]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yz]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zz]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [pk1_stress_xx]
    type = RankTwoAux
    variable = pk1_stress_xx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [pk1_stress_yx]
    type = RankTwoAux
    variable = pk1_stress_yx
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [pk1_stress_zx]
    type = RankTwoAux
    variable = pk1_stress_zx
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [pk1_stress_xy]
    type = RankTwoAux
    variable = pk1_stress_xy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [pk1_stress_yy]
    type = RankTwoAux
    variable = pk1_stress_yy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [pk1_stress_zy]
    type = RankTwoAux
    variable = pk1_stress_zy
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [pk1_stress_xz]
    type = RankTwoAux
    variable = pk1_stress_xz
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [pk1_stress_yz]
    type = RankTwoAux
    variable = pk1_stress_yz
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [pk1_stress_zz]
    type = RankTwoAux
    variable = pk1_stress_zz
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [deformation_gradient_xx]
    type = RankTwoAux
    variable = deformation_gradient_xx
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [deformation_gradient_yx]
    type = RankTwoAux
    variable = deformation_gradient_yx
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [deformation_gradient_zx]
    type = RankTwoAux
    variable = deformation_gradient_zx
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [deformation_gradient_xy]
    type = RankTwoAux
    variable = deformation_gradient_xy
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [deformation_gradient_yy]
    type = RankTwoAux
    variable = deformation_gradient_yy
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [deformation_gradient_zy]
    type = RankTwoAux
    variable = deformation_gradient_zy
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [deformation_gradient_xz]
    type = RankTwoAux
    variable = deformation_gradient_xz
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [deformation_gradient_yz]
    type = RankTwoAux
    variable = deformation_gradient_yz
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [deformation_gradient_zz]
    type = RankTwoAux
    variable = deformation_gradient_zz
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
    constraint_types = 'stress none none stress strain none none none none'
    targets = 'stress11 stress12 strain22'
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
    constraint_types = 'stress none none stress strain none none none none'
    targets = 'stress11 stress12 strain22'
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '400*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '100*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_y
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix2"
    variable = disp_y
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
    constraint_types = 'stress none none stress strain none none none none'
    targets = 'stress11 stress12 strain22'
    macro_gradient = hvar
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  file_base = 2d
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex.i)
mu = 1.0
rho = 1.0
[Problem]
  error_on_jacobian_nonzero_reallocation = true
[]
[Mesh]
  [gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  []
  coord_type = 'XYZ'
[]
[GlobalParams]
  rhie_chow_user_object = 'rc'
[]
[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolator
    u = vel_x
    v = vel_y
    pressure = pressure
  []
[]
[Variables]
  [vel_x]
    type = INSFVVelocityVariable
    initial_condition = 1
    face_interp_method = 'skewness-corrected'
  []
  [vel_y]
    type = INSFVVelocityVariable
    initial_condition = 1
    face_interp_method = 'skewness-corrected'
  []
  [pressure]
    type = INSFVPressureVariable
    face_interp_method = 'skewness-corrected'
  []
  [lambda]
    family = SCALAR
    order = FIRST
  []
[]
[FVKernels]
  [mass]
    type = INSFVMassAdvection
    variable = pressure
    advected_interp_method = 'skewness-corrected'
    velocity_interp_method = 'rc'
    rho = ${rho}
  []
  [mean_zero_pressure]
    type = FVIntegralValueConstraint
    variable = pressure
    lambda = lambda
  []
  [u_advection]
    type = INSFVMomentumAdvection
    variable = vel_x
    advected_interp_method = 'skewness-corrected'
    velocity_interp_method = 'rc'
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_x
    mu = ${mu}
    momentum_component = 'x'
    variable_interp_method = skewness-corrected
  []
  [u_pressure]
    type = INSFVMomentumPressure
    variable = vel_x
    momentum_component = 'x'
    pressure = pressure
  []
  [u_forcing]
    type = INSFVBodyForce
    variable = vel_x
    functor = forcing_u
    momentum_component = 'x'
  []
  [v_advection]
    type = INSFVMomentumAdvection
    variable = vel_y
    advected_interp_method = 'skewness-corrected'
    velocity_interp_method = 'rc'
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion
    variable = vel_y
    mu = ${mu}
    momentum_component = 'y'
    variable_interp_method = skewness-corrected
  []
  [v_pressure]
    type = INSFVMomentumPressure
    variable = vel_y
    momentum_component = 'y'
    pressure = pressure
  []
  [v_forcing]
    type = INSFVBodyForce
    variable = vel_y
    functor = forcing_v
    momentum_component = 'y'
  []
[]
[FVBCs]
  [no-slip-wall-u]
    type = INSFVNoSlipWallBC
    boundary = 'left right top bottom'
    variable = vel_x
    function = '0'
  []
  [no-slip-wall-v]
    type = INSFVNoSlipWallBC
    boundary = 'left right top bottom'
    variable = vel_y
    function = '0'
  []
[]
[Functions]
  [exact_u]
    type = ParsedFunction
    expression = 'x^2*(1-x)^2*(2*y-6*y^2+4*y^3)'
  []
  [exact_v]
    type = ParsedFunction
    expression = '-y^2*(1-y)^2*(2*x-6*x^2+4*x^3)'
  []
  [exact_p]
    type = ParsedFunction
    expression = 'x*(1-x)-2/12'
  []
  [forcing_u]
    type = ParsedFunction
    expression = '-4*mu/rho*(-1+2*y)*(y^2-6*x*y^2+6*x^2*y^2-y+6*x*y-6*x^2*y+3*x^2-6*x^3+3*x^4)+1-2*x+4*x^3'
            '*y^2*(2*y^2-2*y+1)*(y-1)^2*(-1+2*x)*(x-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
  [forcing_v]
    type = ParsedFunction
    expression = '4*mu/rho*(-1+2*x)*(x^2-6*y*x^2+6*x^2*y^2-x+6*x*y-6*x*y^2+3*y^2-6*y^3+3*y^4)+4*y^3*x^2*(2'
            '*x^2-2*x+1)*(x-1)^2*(-1+2*y)*(y-1)^3'
    symbol_names = 'mu rho'
    symbol_values = '${mu} ${rho}'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu NONZERO'
  nl_rel_tol = 1e-8
[]
[Outputs]
  [out]
    type = Exodus
    hide = lambda
  []
  csv = true
[]
[Postprocessors]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2u]
    type = ElementL2FunctorError
    approximate = vel_x
    exact = exact_u
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2v]
    type = ElementL2FunctorError
    approximate = vel_y
    exact = exact_v
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
  [L2p]
    approximate = pressure
    exact = exact_p
    type = ElementL2FunctorError
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
[]
(test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals_fixed.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
    #parallel_type = replicated
  []
  [./sidesets]
    type = SideSetsFromNormalsGenerator
    input = fmg
    normals = '0  1  0
               0 -1  0'
    fixed_normal = true
    new_boundary = 'front back'
    normal_tol = 0.5
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./front]
    type = DirichletBC
    variable = u
    boundary = front
    value = 0
  [../]
  [./back]
    type = DirichletBC
    variable = u
    boundary = back
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/postprocessors/normal_boundary_displacement.i)
[GlobalParams]
  displacements = 'dx dy'
[]
[Problem]
  solve = false
[]
[Mesh]
  [generated_mesh]
    type = FileMeshGenerator
    file = inclined_geom.e
  []
[]
[AuxVariables]
  [dx]
  []
  [dy]
  []
[]
[ICs]
  [dx_ic]
    type = FunctionIC
    variable = dx
    function = 'r := sqrt(x*x+y*y); phi := 2 * pi * r; 0.8660254037844408 * cos(phi) - 0.5 * sin(phi)'
  []
  [dy_ic]
    type = FunctionIC
    variable = dy
    function = 'r := sqrt(x*x+y*y); phi := 2 * pi * r; 0.8660254037844408 * sin(phi) + 0.5 * cos(phi)'
  []
[]
[Postprocessors]
  [top_area]
    type = AreaPostprocessor
    boundary = top
  []
  [top_0]
    type = NormalBoundaryDisplacement
    value_type = average
    boundary = top
  []
  [top_1]
    type = NormalBoundaryDisplacement
    value_type = absolute_average
    boundary = top
  []
  [top_2]
    type = NormalBoundaryDisplacement
    value_type = max
    boundary = top
  []
  [top_3]
    type = NormalBoundaryDisplacement
    value_type = absolute_max
    boundary = top
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/physics/restart/2d_channel_scalar_turbulence_init.i)
### Thermophysical Properties ###
rho = 1
cp = 1
Pr_t = 0.9
# large diffusion coefficients to converge without initial conditions (test uses Problem/solve=false)
mu = 100
k = 10
diff_scalar = 10
### Simulation parameters
inlet_velocity = 1
side_length = 1
### k-epsilon Closure Parameters ###
sigma_k = 1.0
sigma_eps = 1.3
C1_eps = 1.44
C2_eps = 1.92
C_mu = 0.09
### Initial Conditions ###
intensity = 0.01
k_init = '${fparse 1.5*(intensity * inlet_velocity)^2}'
eps_init = '${fparse C_mu^0.75 * k_init^1.5 / side_length}'
mu_t_init = '${fparse rho * C_mu * k_init * k_init / eps_init}'
### Modeling parameters ###
bulk_wall_treatment = false
wall_treatment_eps = 'eq_newton' # Options: eq_newton, eq_incremental, eq_linearized, neq
wall_treatment_tem = 'eq_newton' # Options: eq_newton, eq_incremental, eq_linearized, neq
[Mesh]
  active = 'gen'
  [gen]
    type = GeneratedMeshGenerator
    dim = 2
    xmin = 0
    xmax = 10
    ymin = 0
    ymax = ${side_length}
    nx = 100
    ny = 20
  []
  [fmg_restart]
    type = FileMeshGenerator
    file = user_ics.e
    use_for_exodus_restart = true
  []
[]
[Physics]
  [NavierStokes]
    [Flow]
      [all_flow]
        compressibility = 'incompressible'
        density = ${rho}
        dynamic_viscosity = ${mu}
        inlet_boundaries = 'left'
        momentum_inlet_types = 'fixed-velocity'
        momentum_inlet_functors = '${inlet_velocity} 0'
        wall_boundaries = 'top bottom'
        momentum_wall_types = 'noslip noslip'
        outlet_boundaries = 'right'
        momentum_outlet_types = 'fixed-pressure'
        pressure_functors = '0'
        mass_advection_interpolation = 'average'
        momentum_advection_interpolation = 'average'
      []
    []
    [FluidHeatTransfer]
      [all_energy]
        thermal_conductivity = ${k}
        specific_heat = ${cp}
        energy_inlet_types = 'fixed-temperature'
        energy_inlet_functors = '1'
        energy_wall_types = 'heatflux heatflux'
        energy_wall_functors = '0 0'
        energy_advection_interpolation = 'average'
      []
    []
    [ScalarTransport]
      [all_scalar]
        passive_scalar_names = 'scalar1 scalar2'
        passive_scalar_diffusivity = '${diff_scalar} ${diff_scalar}'
        passive_scalar_source = '0.1 0'
        passive_scalar_coupled_source = '1; 0'
        passive_scalar_coupled_source_coeff = '0.1; 0'
        passive_scalar_inlet_types = 'fixed-value fixed-value'
        passive_scalar_inlet_functors = '1; 0.1'
        passive_scalar_advection_interpolation = 'average'
      []
    []
    [Turbulence]
      [keps]
        fluid_heat_transfer_physics = 'all_energy'
        scalar_transport_physics = 'all_scalar'
        turbulence_handling = 'k-epsilon'
        tke_name = TKE
        tked_name = TKED
        # Fluid properties
        Pr_t = ${Pr_t}
        Sc_t = '0.7'
        # Model parameters
        C1_eps = ${C1_eps}
        C2_eps = ${C2_eps}
        C_mu = ${C_mu}
        sigma_k = ${sigma_k}
        sigma_eps = ${sigma_eps}
        # Wall parameters
        turbulence_walls = 'top bottom'
        bulk_wall_treatment = ${bulk_wall_treatment}
        wall_treatment_eps = ${wall_treatment_eps}
        wall_treatment_T = ${wall_treatment_tem}
        # Numerical parameters
        mu_t_as_aux_variable = false
        k_t_as_aux_variable = false
      []
    []
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu NONZERO'
  nl_abs_tol = 1e-3
  line_search = 'none'
[]
[Problem]
  solve = false
[]
[Outputs]
  # Used to set up a restart from checkpoint
  checkpoint = true
  # Used to set up a restart from exodus file
  [exodus]
    type = Exodus
    execute_on = TIMESTEP_END
  []
  # Used to check results
  csv = true
  execute_on = INITIAL
[]
[Postprocessors]
  [min_vel_x]
    type = ElementExtremeValue
    variable = 'vel_x'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_vel_x]
    type = ElementExtremeValue
    variable = 'vel_x'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_vel_y]
    type = ElementExtremeValue
    variable = 'vel_y'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_vel_y]
    type = ElementExtremeValue
    variable = 'vel_y'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_pressure]
    type = ElementExtremeValue
    variable = 'pressure'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_pressure]
    type = ElementExtremeValue
    variable = 'pressure'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_T_fluid]
    type = ElementExtremeValue
    variable = 'T_fluid'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_T_fluid]
    type = ElementExtremeValue
    variable = 'T_fluid'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_scalar1]
    type = ElementExtremeValue
    variable = 'scalar1'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_scalar1]
    type = ElementExtremeValue
    variable = 'scalar1'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_scalar2]
    type = ElementExtremeValue
    variable = 'scalar2'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_scalar2]
    type = ElementExtremeValue
    variable = 'scalar2'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_mu_t]
    type = ElementExtremeFunctorValue
    functor = 'mu_t'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_mu_t]
    type = ElementExtremeFunctorValue
    functor = 'mu_t'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_tke]
    type = ElementExtremeValue
    variable = 'TKE'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_tke]
    type = ElementExtremeValue
    variable = 'TKE'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
  [min_tked]
    type = ElementExtremeValue
    variable = 'TKED'
    value_type = 'min'
    execute_on = 'INITIAL'
  []
  [max_tked]
    type = ElementExtremeValue
    variable = 'TKED'
    value_type = 'max'
    execute_on = 'INITIAL'
  []
[]
(modules/peridynamics/test/tests/mesh/2D_convert_all_retain.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = true
    blocks_to_pd = '1 2'
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/reactor/test/tests/meshgenerators/revolve_generator/ei_swap.i)
[Problem]
  solve = false
[]
[Mesh]
  # See fancy_extruder_with_boundary_swap.i for details about mesh_2d.e
  [fmg]
    type = FileMeshGenerator
    file = mesh_2d.e
    exodus_extra_element_integers = 'element_extra_integer_1 element_extra_integer_2'
  []
  [rg]
    type = RevolveGenerator
    input = fmg
    axis_point = '5.0 0.0 0.0'
    axis_direction = '0.0 1.0 0.0'
    nums_azimuthal_intervals = '2 4'
    revolving_angles = '30 60'
    elem_integer_names_to_swap = 'element_extra_integer_1 element_extra_integer_2'
    elem_integers_swaps = '1 4 2 8;
                           2 7 |
                           1 8 2 4;
                           2 5'
  []
[]
[AuxVariables]
  [element_extra_integer_1]
    family = MONOMIAL
    order = CONSTANT
  []
  [element_extra_integer_2]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [element_extra_integer_1]
    type = ExtraElementIDAux
    variable = element_extra_integer_1
    extra_id_name = element_extra_integer_1
    execute_on = 'initial'
  []
  [element_extra_integer_2]
    type = ExtraElementIDAux
    variable = element_extra_integer_2
    extra_id_name = element_extra_integer_2
    execute_on = 'initial'
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
  execute_on = final
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
  [dual_var]
    use_dual = true
    block = '10001'
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = friction_uo
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'basic'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 50
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.2 # 3.5
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e5
    penalty_friction = 1e8
    secondary_variable = disp_x
    friction_coefficient = 0.4
    penetration_tolerance = 1e-7
    # Not solving the frictional problem tightly (below)
    slip_tolerance = 1 # 1e-6
    penalty_multiplier = 100
    penalty_multiplier_friction = 1
    use_physical_gap = true
    aux_lm = dual_var
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(test/tests/mortar/mesh_modification/mortar_esm_displaced.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 'gold/2blk-conf.msh'
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    input = file
    sidesets = 'lower_half_internal_boundary'
    new_block_id = '101'
    new_block_name = 'secondary_lower'
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    input = secondary
    sidesets = 'upper_half_internal_boundary'
    new_block_id = '102'
    new_block_name = 'primary_lower'
  []
  patch_update_strategy = ITERATION
  # for consistent CSV output
  allow_renumbering = false
  second_order = true
[]
# Turn on displaced mesh everywhere
[GlobalParams]
  use_displaced_mesh = true
  displacements = 'disp_x disp_y'
[]
# Pre-declare future subdomain
[Mesh]
  add_subdomain_names = 'null null_lower'
  add_subdomain_ids = '3 103'
[]
[Problem]
  kernel_coverage_check = false
[]
[MeshModifiers]
  # Change the subdomains on every time step, starting from the bottom
  # See 'entering_from_left' for the variable guiding the subdomain changes
  [deactivate_regular_elems]
    type = CoupledVarThresholdElementSubdomainModifier
    coupled_var = 'entering_from_left'
    criterion_type = 'ABOVE'
    threshold = 0.5
    block = '1 2'
    # subdomain 3 is inactive, no variables defined on it
    subdomain_id = 3
    moving_boundary_subdomain_pairs = '2 1; 1 2; 1; 2'
    moving_boundaries = 'upper_half_internal_boundary lower_half_internal_boundary lower_half_external_boundary upper_half_external_boundary'
    execute_on = 'INITIAL TIMESTEP_BEGIN'
    execution_order_group = '1'
  []
  [deactivate_lowerD_elems]
    type = CoupledVarThresholdElementSubdomainModifier
    coupled_var = 'entering_from_left'
    criterion_type = 'ABOVE'
    threshold = 0.5
    block = '101 102'
    # subdomain 103 is inactive, no variables defined on it
    subdomain_id = 103
    execute_on = 'INITIAL TIMESTEP_BEGIN'
    execution_order_group = '0'
  []
[]
[Functions]
  [exact_sln]
    type = ParsedFunction
    expression = y
  []
  [ffn]
    type = ParsedFunction
    expression = 0
  []
[]
[Variables]
  [u]
    order = SECOND
    family = LAGRANGE
    block = 'lower_half upper_half'
  []
  [lambda]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = 'u'
    block = 'lower_half upper_half'
  []
  [ffn]
    type = BodyForce
    variable = 'u'
    function = 'ffn'
    block = 'lower_half upper_half'
  []
[]
[Constraints]
  [equal]
    type = EqualValueConstraint
    variable = 'lambda'
    secondary_variable = 'u'
    primary_boundary = 'upper_half_internal_boundary'
    primary_subdomain = 'primary_lower'
    secondary_boundary = 'lower_half_internal_boundary'
    secondary_subdomain = 'secondary_lower'
  []
[]
[AuxVariables]
  [entering_from_left]
    order = CONSTANT
    family = MONOMIAL
    [AuxKernel]
      type = ParsedAux
      expression = 'if(t > x * 4, 1, 0)'
      use_xyzt = true
      # both full-dimensional and low-dimensional should change subdomains
      block = 'lower_half upper_half secondary_lower primary_lower'
      execute_on = 'INITIAL TIMESTEP_BEGIN'
    []
  []
  [disp_x]
    order = SECOND
  []
  [disp_y]
    order = SECOND
  []
[]
[BCs]
  [all]
    type = FunctionDirichletBC
    variable = 'u'
    boundary = 'lower_half_external_boundary upper_half_external_boundary'
    function = 'exact_sln'
  []
[]
[Postprocessors]
  [l2_error]
    type = ElementL2Error
    variable = 'u'
    function = 'exact_sln'
    block = 'lower_half upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_lower_half]
    type = VolumePostprocessor
    block = 'lower_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_upper_half]
    type = VolumePostprocessor
    block = 'upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_null]
    type = VolumePostprocessor
    block = 'null'
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
    petsc_options_iname = '-pc_type -pc_factor_shift_type'
    petsc_options_value = 'lu NONZERO'
  []
[]
[Executioner]
  type = Transient
  num_steps = 3
  nl_abs_tol = 1e-12
  nl_rel_tol = 1e-11
  dtmin = 1
[]
# Testing considerations:
# exodus output does not like overlapping elements
# block-restricted exodus would not handle the changing mesh
# csv nodal-sampling gets affected by node-renumbering
# But this works!
[Outputs]
  csv = true
[]
[Positions]
  [functors]
    type = FunctorExtremaPositions
    functor = 'u'
    extrema_type = 'MAX'
    # only 8 nodes on final step
    num_extrema = 8
    block = 'lower_half upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [react_x]
  []
  [react_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
  []
  [penalty_accumulated_slip]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
  []
  [penalty_tangential_vel]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
  []
  [penalty_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
  []
  [react_x]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_x'
    variable = 'react_x'
  []
  [react_y]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_y'
    variable = 'react_y'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = react_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = react_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = react_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = react_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15                   1e-5'
  line_search = 'none'
  nl_abs_tol = 1e-10
  start_time = 0.0
  end_time = 0.3 # 3.5
  l_tol = 1e-4
  dt = 0.1
  dtmin = 0.001
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    file_base = cylinder_friction_penalty_adaptivity
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    friction_coefficient = 0.4
    secondary_variable = disp_x
    penalty = 5e7
    penalty_friction = 5e8
  []
  [geo]
    type = GeometrySphere
    boundary = 3
    center = '0 4 0'
    radius = 3
  []
[]
[Adaptivity]
  [Markers]
    [contact]
      type = BoundaryMarker
      mark = REFINE
      next_to = 3
    []
  []
  initial_marker = contact
  initial_steps = 2
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(test/tests/ics/from_exodus_solution/elem_part2.i)
# Use the exodus file for restarting the problem:
# - restart elemental aux variable
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = elem_part1_out.e
    use_for_exodus_restart = true
  []
  # This problem uses ExodusII_IO::copy_elemental_solution(), which only
  # works with ReplicatedMesh
  parallel_type = replicated
[]
[Functions]
  [exact_fn]
    type = ParsedFunction
    expression = ((x*x)+(y*y))
  []
  [forcing_fn]
    type = ParsedFunction
    expression = -4
  []
[]
[AuxVariables]
  [e]
    order = CONSTANT
    family = MONOMIAL
    initial_from_file_var = e
    initial_from_file_timestep = 6
  []
[]
[AuxKernels]
  [ak]
    type = ProjectionAux
    variable = e
    v = e
  []
[]
[Variables]
  [u]
    order = FIRST
    family = LAGRANGE
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [ffn]
    type = BodyForce
    variable = u
    function = forcing_fn
  []
[]
[BCs]
  [all]
    type = FunctionDirichletBC
    variable = u
    boundary = '0 1 2 3'
    function = exact_fn
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga_l2.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = PressurizedCyl_Patch6_4Elem.e
    discontinuous_spline_extraction = true
  []
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [rxn]
    type = Reaction
    variable = u
    rate = -0.1
    block = 0  # Avoid direct calculations on spline nodes
  []
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = '1.0'
  []
[]
[Executioner]
  type = Transient
  num_steps = 2
  solve_type = NEWTON
  dtmin = 1
[]
[Outputs]
  exodus = true
[]
(modules/navier_stokes/test/tests/finite_volume/cns/stagnation_inlet/supersonic_nozzle_hllc.i)
stagnation_pressure = 1
stagnation_temperature = 1
[GlobalParams]
  fp = fp
[]
[Debug]
   show_material_props = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = supersonic_nozzle.e
  []
[]
[FluidProperties]
  [fp]
    type = IdealGasFluidProperties
  []
[]
[Variables]
  [rho]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 0.0034
  []
  [rho_u]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 1e-4
    outputs = none
  []
  [rho_v]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    outputs = none
  []
  [rho_E]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 2.5
  []
[]
[FVKernels]
  # Mass conservation
  [mass_time]
    type = FVTimeKernel
    variable = rho
  []
  [mass_advection]
    type = CNSFVMassHLLC
    variable = rho
  []
  # Momentum x conservation
  [momentum_x_time]
    type = FVTimeKernel
    variable = rho_u
  []
  [momentum_x_advection]
    type = CNSFVMomentumHLLC
    variable = rho_u
    momentum_component = x
  []
  # Momentum y conservation
  [momentum_y_time]
    type = FVTimeKernel
    variable = rho_v
  []
  [momentum_y_advection]
    type = CNSFVMomentumHLLC
    variable = rho_v
    momentum_component = y
  []
  # Fluid energy conservation
  [fluid_energy_time]
    type = FVTimeKernel
    variable = rho_E
  []
  [fluid_energy_advection]
    type = CNSFVFluidEnergyHLLC
    variable = rho_E
  []
[]
[FVBCs]
  ## inflow stagnation boundaries
  [mass_stagnation_inflow]
    type = CNSFVHLLCMassStagnationInletBC
    variable = rho
    stagnation_pressure = ${stagnation_pressure}
    stagnation_temperature = ${stagnation_temperature}
    boundary = left
  []
  [momentum_x_stagnation_inflow]
    type = CNSFVHLLCMomentumStagnationInletBC
    variable = rho_u
    momentum_component = x
    stagnation_pressure = ${stagnation_pressure}
    stagnation_temperature = ${stagnation_temperature}
    boundary = left
  []
  [momentum_y_stagnation_inflow]
    type = CNSFVHLLCMomentumStagnationInletBC
    variable = rho_v
    momentum_component = y
    stagnation_pressure = ${stagnation_pressure}
    stagnation_temperature = ${stagnation_temperature}
    boundary = left
  [../]
  [fluid_energy_stagnation_inflow]
    type = CNSFVHLLCFluidEnergyStagnationInletBC
    variable = rho_E
    stagnation_pressure = ${stagnation_pressure}
    stagnation_temperature = ${stagnation_temperature}
    boundary = left
  []
  ## outflow implicit conditions
  [mass_outflow]
    type = CNSFVHLLCMassImplicitBC
    variable = rho
    boundary = right
  []
  [momentum_x_outflow]
    type = CNSFVHLLCMomentumImplicitBC
    variable = rho_u
    momentum_component = x
    boundary = right
  []
  [momentum_y_outflow]
    type = CNSFVHLLCMomentumImplicitBC
    variable = rho_v
    momentum_component = y
    boundary = right
  []
  [fluid_energy_outflow]
    type = CNSFVHLLCFluidEnergyImplicitBC
    variable = rho_E
    boundary = right
  []
  # wall conditions
  [momentum_x_pressure_wall]
    type = CNSFVMomImplicitPressureBC
    variable = rho_u
    momentum_component = x
    boundary = wall
  []
  [momentum_y_pressure_wall]
    type = CNSFVMomImplicitPressureBC
    variable = rho_v
    momentum_component = y
    boundary = wall
  []
[]
[AuxVariables]
  [Ma]
    family = MONOMIAL
    order = CONSTANT
  []
  [Ma_layered]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[UserObjects]
  [layered_Ma_UO]
    type = LayeredAverage
    variable = Ma
    num_layers = 100
    direction = x
  []
[]
[AuxKernels]
  [Ma_aux]
    type = NSMachAux
    variable = Ma
    fluid_properties = fp
    use_material_properties = true
  []
  [Ma_layered_aux]
    type = SpatialUserObjectAux
    variable = Ma_layered
    user_object = layered_Ma_UO
  []
[]
[Materials]
  [var_mat]
    type = ConservedVarValuesMaterial
    rho = rho
    rhou = rho_u
    rhov = rho_v
    rho_et = rho_E
  []
  [fluid_props]
    type = GeneralFluidProps
    porosity = 1
    characteristic_length = 1
  []
  [sound_speed]
    type = SoundspeedMat
    fp = fp
  []
[]
[Postprocessors]
  [cfl_dt]
    type = ADCFLTimeStepSize
    c_names = 'sound_speed'
    vel_names = 'speed'
    CFL = 0.5
  []
  [outflow_Ma]
    type = SideAverageValue
    variable = Ma
    boundary = right
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    petsc_options_iname = '-pc_type'
    petsc_options_value = 'lu'
  []
[]
[Executioner]
  type = Transient
  end_time = 0.1
  [TimeIntegrator]
    type = ExplicitSSPRungeKutta
    order = 2
  []
  l_tol = 1e-8
  [TimeStepper]
    type = PostprocessorDT
    postprocessor = cfl_dt
  []
[]
[VectorPostprocessors]
  [Ma_layered]
    type = LineValueSampler
    variable = Ma_layered
    start_point = '0 0 0'
    end_point = '10 0 0'
    num_points = 100
    sort_by = x
  []
[]
[Outputs]
  exodus = true
[]
(modules/porous_flow/examples/groundwater/ex02_abstraction.i)
# Abstraction groundwater model.  See groundwater_models.md for a detailed description
[Mesh]
  [from_steady_state]
    type = FileMeshGenerator
    file = gold/ex02_steady_state_ex.e
  []
[]
[GlobalParams]
  PorousFlowDictator = dictator
[]
[Variables]
  [pp]
  []
[]
[ICs]
  [pp]
    type = FunctionIC
    variable = pp
    function = steady_state_pp
  []
[]
[BCs]
  [rainfall_recharge]
    type = PorousFlowSink
    boundary = zmax
    variable = pp
    flux_function = -1E-6  # recharge of 0.1mm/day = 1E-4m3/m2/day = 0.1kg/m2/day ~ 1E-6kg/m2/s
  []
  [evapotranspiration]
    type = PorousFlowHalfCubicSink
    boundary = zmax
    variable = pp
    center = 0.0
    cutoff = -5E4 # roots of depth 5m.  5m of water = 5E4 Pa
    use_mobility = true
    fluid_phase = 0
    # Assume pan evaporation of 4mm/day = 4E-3m3/m2/day = 4kg/m2/day ~ 4E-5kg/m2/s
    # Assume that if permeability was 1E-10m^2 and water table at topography then ET acts as pan strength
    # Because use_mobility = true, then 4E-5 = maximum_flux = max * perm * density / visc = max * 1E-4, so max = 40
    max = 40
  []
[]
[DiracKernels]
  inactive = polyline_sink_borehole
  [river]
    type = PorousFlowPolyLineSink
    SumQuantityUO = baseflow
    point_file = ex02_river.bh
    # Assume a perennial river.
    # Assume the river has an incision depth of 1m and a stage height of 1.5m, and these are constant in time and uniform over the whole model.  Hence, if groundwater head is 0.5m (5000Pa) there will be no baseflow and leakage.
    p_or_t_vals = '-999995000 5000 1000005000'
    # Assume the riverbed conductance, k_zz*density*river_segment_length*river_width/riverbed_thickness/viscosity = 1E-6*river_segment_length kg/Pa/s
    fluxes = '-1E3 0 1E3'
    variable = pp
  []
  [horizontal_borehole]
    type = PorousFlowPeacemanBorehole
    SumQuantityUO = abstraction
    bottom_p_or_t = -1E5
    unit_weight = '0 0 -1E4'
    character = 1.0
    point_file = ex02.bh
    variable = pp
  []
  [polyline_sink_borehole]
    type = PorousFlowPolyLineSink
    SumQuantityUO = abstraction
    fluxes = '-0.4 0 0.4'
    p_or_t_vals = '-1E8 0 1E8'
    point_file = ex02.bh
    variable = pp
  []
[]
[Functions]
  [steady_state_pp]
    type = SolutionFunction
    from_variable = pp
    solution = steady_state_solution
  []
  [baseflow_rate]
    type = ParsedFunction
    symbol_names = 'baseflow_kg dt'
    symbol_values = 'baseflow_kg dt'
    expression = 'baseflow_kg / dt * 24.0 * 3600.0 / 400.0'
  []
  [abstraction_rate]
    type = ParsedFunction
    symbol_names = 'abstraction_kg dt'
    symbol_values = 'abstraction_kg dt'
    expression = 'abstraction_kg / dt * 24.0 * 3600.0'
  []
[]
[AuxVariables]
  [ini_pp]
  []
  [pp_change]
  []
[]
[AuxKernels]
  [ini_pp]
    type = FunctionAux
    variable = ini_pp
    function = steady_state_pp
    execute_on = INITIAL
  []
  [pp_change]
    type = ParsedAux
    variable = pp_change
    coupled_variables = 'pp ini_pp'
    expression = 'pp - ini_pp'
  []
[]
[PorousFlowUnsaturated]
  fp = simple_fluid
  porepressure = pp
[]
[FluidProperties]
  [simple_fluid]
    type = SimpleFluidProperties
  []
[]
[Materials]
  [porosity_everywhere]
    type = PorousFlowPorosityConst
    porosity = 0.05
  []
  [permeability_aquifers]
    type = PorousFlowPermeabilityConst
    block = 'top_aquifer bot_aquifer'
    permeability = '1E-12 0 0 0 1E-12 0 0 0 1E-13'
  []
  [permeability_aquitard]
    type = PorousFlowPermeabilityConst
    block = aquitard
    permeability = '1E-16 0 0 0 1E-16 0 0 0 1E-17'
  []
[]
[UserObjects]
  [steady_state_solution]
    type = SolutionUserObject
    execute_on = INITIAL
    mesh = gold/ex02_steady_state_ex.e
    timestep = LATEST
    system_variables = pp
  []
  [baseflow]
    type = PorousFlowSumQuantity
  []
  [abstraction]
    type = PorousFlowSumQuantity
  []
[]
[Postprocessors]
  [baseflow_kg]
    type = PorousFlowPlotQuantity
    uo = baseflow
    outputs = 'none'
  []
  [dt]
    type = TimestepSize
    outputs = 'none'
  []
  [baseflow_l_per_m_per_day]
    type = FunctionValuePostprocessor
    function = baseflow_rate
    indirect_dependencies = 'baseflow_kg dt'
  []
  [abstraction_kg]
    type = PorousFlowPlotQuantity
    uo = abstraction
    outputs = 'none'
  []
  [abstraction_kg_per_day]
    type = FunctionValuePostprocessor
    function = abstraction_rate
    indirect_dependencies = 'abstraction_kg dt'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    # following 2 lines are not mandatory, but illustrate a popular preconditioner choice in groundwater models
    petsc_options_iname = '-pc_type -sub_pc_type  -pc_asm_overlap'
    petsc_options_value = ' asm      ilu           2              '
  []
[]
[Executioner]
  type = Transient
  solve_type = Newton
  dt = 100
  [TimeStepper]
    type = FunctionDT
    function = 'max(100, t)'
  []
  end_time = 8.64E5 # 10 days
  nl_abs_tol = 1E-11
[]
[Outputs]
  print_linear_residuals = false
  [ex]
    type = Exodus
    execute_on = final
  []
  [csv]
    type = CSV
  []
[]
(test/tests/meshgenerators/add_all_side_sets_generators/less_simple.i)
[Mesh]
  [read]
    type = FileMeshGenerator
    file = reactor.e
  []
  [block_1]
    type = AllSideSetsByNormalsGenerator
    input = read
  []
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-action.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
  scaling = 1e0
[]
[Mesh]
  [original_file_mesh]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks-coarse.e
  []
  # These sidesets need to be deleted because the contact action adds them automatically. For this
  # particular mesh, the new IDs will be identical to the deleted ones and will conflict if we don't
  # remove the original ones.
  [delete_3]
    type = BlockDeletionGenerator
    input = original_file_mesh
    block = 3
  []
  [revised_file_mesh]
    type = BlockDeletionGenerator
    input = delete_3
    block = 4
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
    # order = SECOND
  []
  [disp_y]
    block = '1 2'
    # order = SECOND
  []
[]
[Contact]
  [frictional]
    primary = 20
    secondary = 10
    formulation = mortar
    model = coulomb
    friction_coefficient = 0.1
    c_normal = 1.0e-2
    c_tangential = 1.0e-1
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor -snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 20
  line_search = 'none'
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
  [contact]
    type = ContactDOFSetSize
    variable = frictional_normal_lm
    subdomain = frictional_secondary_subdomain
    execute_on = 'nonlinear timestep_end'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere_mortar_error.i)
sphere_outer_htc = 10 # W/m^2/K
sphere_outer_Tinf = 300 # K
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '3'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
  coord_type = RZ
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  []
[]
[Variables]
  [temp]
    initial_condition = 500
  []
  [lm]
    order = SECOND
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[AuxVariables]
  [power_density]
    block = 'fuel'
    initial_condition = 50e3
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = temp
    block = '1 2'
  []
  [heat_source]
    type = CoupledForce
    variable = temp
    block = 'fuel'
    v = power_density
  []
[]
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 34.6
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 2
    primary_emissivity = 0.0
    secondary_emissivity = 0.0
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 2
    gap_conductivity = 5.0
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 3
    primary_subdomain = 10000
    secondary_boundary = 2
    secondary_subdomain = 10001
    gap_flux_models = 'radiation conduction'
    gap_geometry_type = SPHERE
  []
[]
[BCs]
  [RPV_out_BC] # k \nabla T = h (T- T_inf) at RPV outer boundary
    type = ConvectiveFluxFunction # (Robin BC)
    variable = temp
    boundary = '4' # outer RPV
    coefficient = ${sphere_outer_htc}
    T_infinity = ${sphere_outer_Tinf}
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
[]
[Outputs]
  exodus = true
  csv = true
  [Console]
    type = Console
  []
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '2 3'
    variable = temp
  []
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
  [ptot]
    type = ElementIntegralVariablePostprocessor
    variable = power_density
    block = 'fuel'
  []
  [sphere_convective_out]
    type = ConvectiveHeatTransferSideIntegral
    T_solid = temp
    boundary = '4' # outer RVP
    T_fluid = ${sphere_outer_Tinf}
    htc = ${sphere_outer_htc}
  []
  [heat_balance] # should be equal to 0 upon convergence
    type = ParsedPostprocessor
    expression = '(sphere_convective_out - ptot) / ptot'
    pp_names = 'sphere_convective_out ptot'
  []
[]
(tutorials/shield_multiphysics/inputs/step13_restart/step13a_base_calc.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
    initial_condition = 300
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = 1050
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = 1050
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = 875
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Transient
  num_steps = 4
  dt = ${units 12 h -> s}
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
  checkpoint = true
[]
(modules/porous_flow/examples/restart/gas_injection.i)
# Using the results from the equilibrium run to provide the initial condition for
# porepressure, we now inject a gas phase into the brine-saturated reservoir. In this
# example, where the mesh used is identical to the mesh used in gravityeq.i, we can use
# the basic restart capability by simply setting the initial condition for porepressure
# using the results from gravityeq.i.
#
# Even though the gravity equilibrium is established using a 2D mesh, in this example,
# we shift the mesh 0.1 m to the right and rotate it about the Y axis to make a 2D radial
# model.
#
# Methane injection takes place over the surface of the hole created by rotating the mesh,
# and hence the injection area is 2 pi r h. We can calculate this using an AreaPostprocessor,
# and then use this in a ParsedFunction to calculate the injection rate so that 10 kg/s of
# methane is injected.
#
# Results can be improved by uniformly refining the initial mesh.
#
# Note: as this example uses the results from a previous simulation, gravityeq.i MUST be
# run before running this input file.
[Mesh]
  uniform_refine = 1
  [file]
    type = FileMeshGenerator
    file = gravityeq_out.e
  []
  [translate]
    type = TransformGenerator
    transform = TRANSLATE
    vector_value = '0.1 0 0'
    input = file
  []
  coord_type = RZ
  rz_coord_axis = Y
[]
[GlobalParams]
  PorousFlowDictator = dictator
  gravity = '0 -9.81 0'
  temperature_unit = Celsius
[]
[Variables]
  [pp_liq]
    initial_from_file_var = porepressure
  []
  [sat_gas]
    initial_condition = 0
  []
[]
[AuxVariables]
  [temperature]
    initial_condition = 50
  []
  [xnacl]
    initial_condition = 0.1
  []
  [brine_density]
    family = MONOMIAL
    order = CONSTANT
  []
  [methane_density]
    family = MONOMIAL
    order = CONSTANT
  []
  [massfrac_ph0_sp0]
    initial_condition = 1
  []
  [massfrac_ph1_sp0]
    initial_condition = 0
  []
  [pp_gas]
    family = MONOMIAL
    order = CONSTANT
  []
  [sat_liq]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[Kernels]
  [mass0]
    type = PorousFlowMassTimeDerivative
    variable = pp_liq
  []
  [flux0]
    type = PorousFlowAdvectiveFlux
    variable = pp_liq
  []
  [mass1]
    type = PorousFlowMassTimeDerivative
    variable = sat_gas
    fluid_component = 1
  []
  [flux1]
    type = PorousFlowAdvectiveFlux
    variable = sat_gas
    fluid_component = 1
  []
[]
[AuxKernels]
  [brine_density]
    type = PorousFlowPropertyAux
    property = density
    variable = brine_density
    execute_on = 'initial timestep_end'
  []
  [methane_density]
    type = PorousFlowPropertyAux
    property = density
    variable = methane_density
    phase = 1
    execute_on = 'initial timestep_end'
  []
  [pp_gas]
    type = PorousFlowPropertyAux
    property = pressure
    phase = 1
    variable = pp_gas
    execute_on = 'initial timestep_end'
  []
  [sat_liq]
    type = PorousFlowPropertyAux
    property = saturation
    variable = sat_liq
    execute_on = 'initial timestep_end'
  []
[]
[BCs]
  [gas_injection]
    type = PorousFlowSink
    boundary = left
    variable = sat_gas
    flux_function = injection_rate
    fluid_phase = 1
  []
  [brine_out]
    type = PorousFlowPiecewiseLinearSink
    boundary = right
    variable = pp_liq
    multipliers = '0 1e9'
    pt_vals = '0 1e9'
    fluid_phase = 0
    flux_function = 1e-6
    use_mobility = true
  []
[]
[Functions]
  [injection_rate]
    type = ParsedFunction
    symbol_values = injection_area
    symbol_names = area
    expression = '-10/area'
  []
[]
[UserObjects]
  [dictator]
    type = PorousFlowDictator
    porous_flow_vars = 'pp_liq sat_gas'
    number_fluid_phases = 2
    number_fluid_components = 2
  []
  [pc]
    type = PorousFlowCapillaryPressureVG
    alpha = 1e-5
    m = 0.5
    sat_lr = 0.2
  []
[]
[FluidProperties]
  [brine]
    type = BrineFluidProperties
  []
  [methane]
    type = MethaneFluidProperties
  []
  [methane_tab]
    type = TabulatedBicubicFluidProperties
    fp = methane
    save_file = false
  []
[]
[Materials]
  [temperature]
    type = PorousFlowTemperature
    temperature = temperature
  []
  [ps]
    type = PorousFlow2PhasePS
    phase0_porepressure = pp_liq
    phase1_saturation = sat_gas
    capillary_pressure = pc
  []
  [massfrac]
    type = PorousFlowMassFraction
    mass_fraction_vars = 'massfrac_ph0_sp0 massfrac_ph1_sp0'
  []
  [brine]
    type = PorousFlowBrine
    compute_enthalpy = false
    compute_internal_energy = false
    xnacl = xnacl
    phase = 0
  []
  [methane]
    type = PorousFlowSingleComponentFluid
    compute_enthalpy = false
    compute_internal_energy = false
    fp = methane_tab
    phase = 1
  []
  [porosity]
    type = PorousFlowPorosityConst
    porosity = 0.1
  []
  [permeability]
    type = PorousFlowPermeabilityConst
    permeability = '1e-13 0 0 0 1e-13 0  0 0 1e-13'
  []
  [relperm_liq]
    type = PorousFlowRelativePermeabilityCorey
    n = 2
    phase = 0
    s_res = 0.2
    sum_s_res = 0.3
  []
  [relperm_gas]
    type = PorousFlowRelativePermeabilityCorey
    n = 2
    phase = 1
    s_res = 0.1
    sum_s_res = 0.3
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type'
    petsc_options_value = ' asm      lu           NONZERO'
  []
[]
[Executioner]
  type = Transient
  solve_type = Newton
  end_time = 1e8
  nl_abs_tol = 1e-12
  nl_rel_tol = 1e-06
  nl_max_its = 20
  dtmax = 1e6
  [TimeStepper]
    type = IterationAdaptiveDT
    dt = 1e1
  []
[]
[Postprocessors]
  [mass_ph0]
    type = PorousFlowFluidMass
    fluid_component = 0
    execute_on = 'initial timestep_end'
  []
  [mass_ph1]
    type = PorousFlowFluidMass
    fluid_component = 1
    execute_on = 'initial timestep_end'
  []
  [injection_area]
    type = AreaPostprocessor
    boundary = left
    execute_on = initial
  []
[]
[Outputs]
  execute_on = 'initial timestep_end'
  exodus = true
  perf_graph = true
  checkpoint = true
[]
(modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_annulus_thermal_contact.i)
[Mesh]
  [fmesh]
    type = FileMeshGenerator
    file = meshed_annulus.e
  []
  [rename]
    type = RenameBlockGenerator
    input = fmesh
    old_block = '1 2 3'
    new_block = '1 4 3'
  []
[]
[Variables]
  [./temp]
    block = '1 3'
    initial_condition = 1.0
  [../]
[]
[Kernels]
  [./hc]
    type = HeatConduction
    variable = temp
    block = '1 3'
  [../]
  [./source]
    type = HeatSource
    variable = temp
    block = 3
    value = 10.0
  [../]
[]
[BCs]
  [./outside]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 1.0
  [../]
[]
[ThermalContact]
  [./gap_conductivity]
    type = GapHeatTransfer
    variable = temp
    primary = 2
    secondary = 3
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductivity = 0.5
  [../]
[]
[Materials]
  [./hcm]
    type = HeatConductionMaterial
    block = '1 3'
    temp = temp
    thermal_conductivity = 1
  [../]
[]
[Problem]
  type = FEProblem
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  [./out]
    type = Exodus
  [../]
[]
(modules/solid_mechanics/tutorials/basics/part_3_1.i)
#Tensor Mechanics tutorial: the basics
#Step 3, part 1
#3D simulation of uniaxial tension with J2 plasticity
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = necking_quad4.e
  []
  [extrude]
    type = MeshExtruderGenerator
    extrusion_vector = '0 0 0.5'
    num_layers = 2
    bottom_sideset = 'back'
    top_sideset = 'front'
    input = file_mesh
  []
  uniform_refine = 0
  second_order = true
[]
[Physics/SolidMechanics/QuasiStatic]
  [./block1]
    strain = FINITE
    add_variables = true
    generate_output = 'stress_yy strain_yy'
  [../]
[]
[Materials]
  [./elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.1e5
    poissons_ratio = 0.3
  [../]
  [./stress]
    type = ComputeMultiPlasticityStress
    ep_plastic_tolerance = 1e-9
    plastic_models = J2
  [../]
[]
[UserObjects]
  [./hardening]
    type = SolidMechanicsHardeningCubic
    value_0 = 2.4e2
    value_residual = 3.0e2
    internal_0 = 0
    internal_limit = 0.005
  [../]
  [./J2]
    type = SolidMechanicsPlasticJ2
    yield_strength = hardening
    yield_function_tolerance = 1E-3
    internal_constraint_tolerance = 1E-9
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = disp_x #change the variable to reflect the new displacement names
    boundary = 1
    value = 0.0
  [../]
  [./back]
    type = DirichletBC
    variable = disp_z #change the variable to reflect the new displacement names
    boundary = back
    value = 0.0
  [../]
  [./bottom]
    type = DirichletBC
    variable = disp_y #change the variable to reflect the new displacement names
    boundary = 3
    value = 0.0
  [../]
  [./top]
    type = FunctionDirichletBC
    variable = disp_y #change the variable to reflect the new displacement names
    boundary = 4
    function = '0.0007*t'
  [../]
[]
[Preconditioning]
  [./SMP]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  type = Transient
  dt = 0.25
  end_time = 16
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -sub_pc_type -pc_asm_overlap -ksp_gmres_restart'
  petsc_options_value = 'asm lu 1 101'
[]
[Postprocessors]
  [./ave_stress_bottom]
    type = SideAverageValue
    variable = stress_yy
    boundary = 3
  [../]
  [./ave_strain_bottom]
    type = SideAverageValue
    variable = strain_yy
    boundary = 3
  [../]
[]
[Outputs]
  exodus = true
  perf_graph = true
  csv = true
  print_linear_residuals = false
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_pg.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
  converge_on = 'disp_x disp_y'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [lm_x]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
  [lm_y]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
[]
[AuxVariables]
  [aux_lm]
    block = 'secondary_lower'
    use_dual = false
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    incremental = false
    save_in = 'saved_x saved_y'
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
    strain = SMALL
    add_variables = false
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff1_stress]
    type = ComputeLinearElasticStress
    block = '1'
  []
  [stuff2_stress]
    type = ComputeLinearElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor'
  petsc_options_iname = '-pc_type   -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu          NONZERO               1e-12'
  line_search = 'none'
  nl_abs_tol = 1e-7
  l_max_its = 5
  nl_rel_tol = 1e-09
  start_time = -0.1
  end_time = 0.3 # 3.5
  l_tol = 1e-8
  dt = 0.1
  dtmin = 0.001
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3 4'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3 4'
    sort_by = id
  []
  [lm_x]
    type = NodalValueSampler
    variable = lm_x
    boundary = '3'
    sort_by = id
  []
  [lm_y]
    type = NodalValueSampler
    variable = lm_y
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp lm_x lm_y'
    file_base = cylinder_friction_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[Constraints]
  [weighted_gap_lm]
    type = ComputeFrictionalForceCartesianLMMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    lm_x = lm_x
    lm_y = lm_y
    variable = lm_x
    disp_x = disp_x
    disp_y = disp_y
    use_displaced_mesh = true
    correct_edge_dropping = false
    mu = 0.4
    c_t = 1.0e6
    c = 1.0e6
    use_petrov_galerkin = true
    aux_lm = aux_lm
  []
  [x]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_x
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
  [y]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_y
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [penalty_normal_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [penalty_frictional_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [accumulated_slip_one]
    order = FIRST
    family = LAGRANGE
  []
  [tangential_vel_one]
    order = FIRST
    family = LAGRANGE
  []
  [weighted_gap]
    order = FIRST
    family = LAGRANGE
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [react_x]
  []
  [react_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
  []
[]
[AuxKernels]
  [penalty_normal_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
  []
  [penalty_frictional_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
  []
  [penalty_accumulated_slip_auxk]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
  []
  [penalty_tangential_vel_auxk]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
  []
  [penalty_weighted_gap_auxk]
    type = MortarUserObjectAux
    variable = weighted_gap
    user_object = friction_uo
    contact_quantity = normal_gap
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [react_x]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_x'
    variable = 'react_x'
  []
  [react_y]
    type = ReactionForceAux
    vector_tag = 'ref'
    v = 'disp_y'
    variable = 'react_y'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = react_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = react_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = react_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = react_y
    boundary = 4
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '2 3 4 5 6 7'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       superlu_dist                  NONZERO               1e-15                   1e-5'
  line_search = 'none'
  nl_abs_tol = 1e-14
  nl_rel_tol = 1e-10
  start_time = 0.0
  end_time = 0.3 # 3.5
  l_tol = 1e-4
  dt = 0.1
  dtmin = 0.001
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3'
    sort_by = id
  []
  [cont_press]
    type = NodalValueSampler
    variable = penalty_normal_pressure
    boundary = '3'
    sort_by = id
  []
  [friction]
    type = NodalValueSampler
    variable = penalty_frictional_pressure
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp cont_press friction'
    file_base = cylinder_friction_penalty_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    friction_coefficient = 0.4 # with 2.0 works
    secondary_variable = disp_x
    penalty = 5e9
    penalty_friction = 1e7
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(tutorials/shield_multiphysics/inputs/step06_transient_heat_conduction/step6_transient.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
    initial_condition = 300
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = 1050
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = 1050
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = 875
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Transient
  num_steps = 10
  dt = ${units 12 h -> s}
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/restart/scalar-var/part3.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = part1_out.e
    use_for_exodus_restart = true
  []
[]
[Variables]
  [v]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_from_file_var = v
    initial_condition = 0
  []
  [lambda]
    family = SCALAR
    order = FIRST
    initial_from_file_var = lambda
  []
[]
[FVKernels]
  [advection]
    type = FVElementalAdvection
    variable = v
    velocity = '1 0 0'
  []
  [lambda]
    type = FVScalarLagrangeMultiplier
    variable = v
    lambda = lambda
    phi0 = 1
  []
[]
[Executioner]
  type = Steady
  petsc_options_iname = '-snes_max_it'
  petsc_options_value = '0'
  nl_abs_tol = 1e-10
[]
[Outputs]
  [out]
    type = Exodus
    execute_on = 'final'
  []
[]
(test/tests/mesh/mesh_only/mesh_only.i)
[Mesh]
  uniform_refine = 1
  [file]
    type = FileMeshGenerator
    file = chimney_quad.e
  []
  [./extrude]
    input = file
    type = MeshExtruderGenerator
    num_layers = 20
    extrusion_vector = '0 1e-2 0'
    bottom_sideset = '2'
    top_sideset = '4'
  [../]
[]
[Outputs]
  [out]
    type = Exodus
    output_extra_element_ids = false
  []
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(test/tests/mortar/continuity-2d-conforming/conforming.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-conf.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = '10001'
    new_block_name = 'secondary_lower'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = '10000'
    new_block_name = 'primary_lower'
  []
[]
[Functions]
  [./exact_sln]
    type = ParsedFunction
    expression= y
  [../]
  [./ffn]
    type = ParsedFunction
    expression= 0
  [../]
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./ffn]
    type = BodyForce
    variable = u
    function = ffn
  [../]
[]
[Constraints]
  [./ced]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
  [../]
[]
[BCs]
  [./all]
    type = FunctionDirichletBC
    variable = u
    boundary = '1 2 3 4'
    function = exact_sln
  [../]
[]
[Postprocessors]
  [./l2_error]
    type = ElementL2Error
    variable = u
    function = exact_sln
    block = '1 2'
    execute_on = 'initial timestep_end'
  [../]
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  l_tol = 1e-10
[]
[Outputs]
  exodus = true
[]
(modules/reactor/test/tests/meshgenerators/reporting_id/depletion_id/depletion_id.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = depletion_id_in.e
    exodus_extra_element_integers = 'material_id pin_id assembly_id'
  []
  [depl_map]
    type = DepletionIDGenerator
    input = 'fmg'
    id_name = 'assembly_id pin_id'
    material_id_name = 'material_id'
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  [out]
    type = Exodus
    execute_on = timestep_end
    output_extra_element_ids = true
    extra_element_ids_to_output = 'depletion_id'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_radiation.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[ThermalContact]
  [thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 100
    secondary = 101
    emissivity_primary = 1.0
    emissivity_secondary = 1.0
    gap_conductivity = 1.0e-12
    quadrature = true
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-action.i)
starting_point = 2e-1
offset = -0.19
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = long-bottom-block-no-lower-d.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [DynamicTensorMechanics]
    displacements = 'disp_x disp_y'
    generate_output = 'stress_xx stress_yy'
    strain = FINITE
    block = '1 2'
    stiffness_damping_coefficient = 0.05
    hht_alpha = 0.0
  []
  [inertia_x]
    type = InertialForce
    variable = disp_x
    velocity = vel_x
    acceleration = accel_x
    beta = 0.25
    gamma = 0.5
    alpha = 0
    eta = 0.0
    block = '1 2'
  []
  [inertia_y]
    type = InertialForce
    variable = disp_y
    velocity = vel_y
    acceleration = accel_y
    beta = 0.25
    gamma = 0.5
    alpha = 0
    eta = 0.0
    block = '1 2'
  []
[]
[Materials]
  [elasticity_2]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [elasticity_1]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.3
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
  [strain]
    type = ComputeFiniteStrain
    block = '1 2'
  []
  [density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '7750'
  []
[]
[AuxVariables]
  [vel_x]
    block = '1 2'
  []
  [accel_x]
    block = '1 2'
  []
  [vel_y]
    block = '1 2'
  []
  [accel_y]
    block = '1 2'
  []
  [vel_z]
    block = '1 2'
  []
  [accel_z]
    block = '1 2'
  []
[]
[AuxKernels]
  [accel_x]
    type = NewmarkAccelAux
    variable = accel_x
    displacement = disp_x
    velocity = vel_x
    beta = 0.25
    execute_on = 'LINEAR timestep_end'
  []
  [vel_x]
    type = NewmarkVelAux
    variable = vel_x
    acceleration = accel_x
    gamma = 0.5
    execute_on = 'LINEAR timestep_end'
  []
  [accel_y]
    type = NewmarkAccelAux
    variable = accel_y
    displacement = disp_y
    velocity = vel_y
    beta = 0.25
    execute_on = 'LINEAR timestep_end'
  []
  [vel_y]
    type = NewmarkVelAux
    variable = vel_y
    acceleration = accel_y
    gamma = 0.5
    execute_on = 'LINEAR timestep_end'
  []
[]
[Contact]
  [mechanical]
    formulation = mortar
    model = coulomb
    primary = 20
    secondary = 10
    friction_coefficient = 0.5
    c_normal = 1.0e4
    c_tangential = 1.0e4
    mortar_dynamics = true
    newmark_beta = 0.25
    newmark_gamma = 0.5
    capture_tolerance = 1.0e-5
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 4 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 30 # 50
    function = '0' # '1e-2*t'
  []
[]
[Executioner]
  type = Transient
  end_time = 75
  dt = 0.05
  dtmin = .005
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor -snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err '
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  nl_max_its = 50
  line_search = 'none'
  snesmf_reuse_base = false
  [TimeIntegrator]
    type = NewmarkBeta
    beta = 0.25
    gamma = 0.5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[VectorPostprocessors]
  [mechanical_tangential_lm]
    type = NodalValueSampler
    block = 'mechanical_secondary_subdomain'
    variable = mechanical_tangential_lm
    sort_by = 'x'
    execute_on = TIMESTEP_END
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_splittrue.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = coh3D_3Blocks.e
    #parallel_type = replicated
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
    split_interface = true
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/elements_to_tetrahedrons_convertor/hex_prism_convert.i)
[Mesh]
  [accg]
    type = FileMeshGenerator
    file = 'hex_prism_2d.e'
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = accg
    heights = '0.4 0.8 1.2'
    num_layers = '1 2 3'
    direction = '0 0 1'
    bottom_boundary = '200'
    top_boundary = '300'
    subdomain_swaps = '10 11 15 16;
                       10 12 15 17;
                       10 13 15 18'
  []
  [convert]
    type = ElementsToTetrahedronsConverter
    input = extrude
  []
[]
(modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse.i)
[GlobalParams]
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = three_hexagons_coarse.e
  []
  patch_size = 10
  patch_update_strategy = auto
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1 2 3'
    planar_formulation = PLANE_STRAIN
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '110'
      function = pressure
      factor = 80
    []
    [hex2_pressure]
      boundary = '210'
      function = pressure
      factor = 50
    []
  []
[]
[Contact]
  [contact_pressure]
    formulation = penalty
    model = frictionless
    primary = '201 301 201'
    secondary = '102 102 301'
    penalty = 2e+03
    normalize_penalty = true
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 4.0
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step02_coef_diffusion/step2.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step01_diffusion/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
  []
[]
[Kernels]
  [diffusion_water]
    type = CoefDiffusion
    variable = T
    coef = 0.6
    block = water
  []
  [diffusion_concrete_hd]
    type = CoefDiffusion
    variable = T
    coef = 5
    block = concrete_hd
  []
  [diffusion_concrete]
    type = CoefDiffusion
    variable = T
    coef = 2.25
    block = concrete
  []
  [diffusion_Al]
    type = CoefDiffusion
    variable = T
    coef = 175
    block = Al
  []
[]
[BCs]
  [left]
    type = DirichletBC  # Simple u=value BC
    variable = T        # Variable to be set
    boundary = top      # Name of a sideset in the mesh
    value = 330
  []
  [right]
    type = DirichletBC
    variable = T
    boundary = bottom
    value = 300
  []
[]
[Executioner]
  type = Steady       # Steady state problem
  solve_type = NEWTON # Perform a Newton solve
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/combined/test/tests/3d-mortar-projection-tolerancing/test.i)
stress_free_temperature = 300
thermal_expansion_coeff = 6.66e-6
[Problem]
  type = FEProblem
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  temperature = T_K
[]
[Mesh]
  patch_update_strategy = iteration
  use_displaced_mesh = true
  patch_size = 40
  [ori]
    type = FileMeshGenerator
    file = 'test.msh'
  []
[]
[Variables]
  [disp_x]
    block = 'pellet_inner pellet_outer'
  []
  [disp_y]
    block = 'pellet_inner pellet_outer'
  []
  [disp_z]
    block = 'pellet_inner pellet_outer'
  []
  [T_K]
    [InitialCondition]
      type = ConstantIC
      value = 300.0
    []
  []
  [lm_pellet]
    block = 'pellet_secondary_subdomain'
  []
[]
[Kernels]
  [solid_x]
    type = ADStressDivergenceTensors
    variable = disp_x
    component = 0
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = false
  []
  [solid_y]
    type = ADStressDivergenceTensors
    variable = disp_y
    component = 1
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = false
  []
  [solid_z]
    type = ADStressDivergenceTensors
    variable = disp_z
    component = 2
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = false
  []
  [timeder]
    type = ADHeatConductionTimeDerivative
    variable = 'T_K'
    density_name = density
    specific_heat = specific_heat
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = true
  []
  [diff]
    type = ADHeatConduction
    variable = 'T_K'
    thermal_conductivity = thermal_conductivity
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = true
  []
  [heatsource]
    type = ADMatHeatSource
    variable = 'T_K'
    material_property = radial_source
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = true
  []
[]
[Debug]
  show_var_residual_norms = TRUE
[]
[BCs]
  [mirror_z]
    type = ADDirichletBC
    variable = disp_z
    boundary = 'mirror_innerp mirror_outerp'
    value = 0
  []
  [mirror_x]
    type = ADDirichletBC
    variable = disp_x
    boundary = 'mirror_innerp mirror_outerp'
    value = 0
  []
  [mirror_y]
    type = ADDirichletBC
    variable = disp_y
    boundary = 'mirror_innerp mirror_outerp'
    value = 0
  []
[]
[Materials]
  [pellet_properties]
    type = ADGenericConstantMaterial
    prop_names = 'density  thermal_conductivity specific_heat'
    prop_values = '3.3112e3  34 1.2217e3'
    block = 'pellet_inner pellet_outer'
  []
  [pulse_shape_linear]
    type = ADGenericFunctionMaterial
    prop_values = '5e10*max(11455*(t)/7,1e-9)'
    prop_names = 'radial_source'
    block = 'pellet_inner pellet_outer'
    use_displaced_mesh = false
  []
  [strain]
    type = ADComputeSmallStrain
    displacements = 'disp_x disp_y disp_z'
    eigenstrain_names = eigenstrain #nameS!
    block = 'pellet_inner pellet_outer'
  []
  [thermal_strain]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = ${stress_free_temperature}
    thermal_expansion_coeff = ${thermal_expansion_coeff}
    eigenstrain_name = eigenstrain
    block = 'pellet_inner pellet_outer'
  []
  [elasticity]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 3.306e11
    poissons_ratio = 0.329
  []
  [stress]
    type = ADComputeLinearElasticStress
    block = 'pellet_inner pellet_outer'
  []
[]
[Contact]
  [pellet]
    primary = void_pellet_0
    secondary = void_pellet_1
    model = frictionless
    formulation = mortar
    c_normal = 1e6
    correct_edge_dropping = true
  []
[]
[UserObjects]
  [conduction]
    type = GapFluxModelConduction
    temperature = T_K
    boundary = 'void_pellet_0 void_pellet_1'
    gap_conductivity = 0.4
    use_displaced_mesh = true
  []
  [rad_pellet]
    type = GapFluxModelRadiation
    temperature = T_K
    boundary = void_pellet_0
    primary_emissivity = 0.37
    secondary_emissivity = 0.37
    use_displaced_mesh = true
  []
[]
[Constraints]
  [gap_pellet]
    type = ModularGapConductanceConstraint
    variable = lm_pellet
    secondary_variable = T_K
    primary_boundary = 'void_pellet_0'
    primary_subdomain = pellet_primary_subdomain
    secondary_boundary = 'void_pellet_1'
    secondary_subdomain = pellet_secondary_subdomain
    gap_flux_models = 'conduction rad_pellet' #closed_pellet
    gap_geometry_type = 'CYLINDER'
    cylinder_axis_point_1 = '0 0 0'
    cylinder_axis_point_2 = '0 0 1'
    use_displaced_mesh = true
    quadrature = SECOND
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -pc_factor_shift_type'
  petsc_options_value = 'lu       superlu_dist                  NONZERO'
  automatic_scaling = true
  line_search = none
  ignore_variables_for_autoscaling = 'pellet_normal_lm'
  compute_scaling_once = true
  scaling_group_variables = 'disp_x disp_y disp_z; T_K'
  nl_rel_tol = 1e-50
  nl_abs_tol = 1e-8
  nl_max_its = 20
  dtmin = 1e-3
  dt = 1e-3
  start_time = 0e-3
  end_time = 1
[]
[Outputs]
  [exodus]
    type = Exodus
    file_base = constMat
  []
  print_linear_residuals = false
[]
(modules/combined/test/tests/electromagnetic_joule_heating/fusing_current_through_copper_wire.i)
# This test is a simpified coupled case between the electromagnetic and
# heat transfer modules. While the file microwave_heating.i is a test
# utilizing the method of manufactured solutions, where both real and
# complex components of the electromagnetic properties are provided
# (such that no term is zeroed out), this test involves only the
# real components of the electromagnetic properties. In particular,
# this test supplies the fusing current to a copper wire and simulations
# the spatial and temporal heating profile until the wire reaches its
# melting point. The PDE's of this test file are as follows:
#
#   curl(curl(A)) + j*mu*omega*(sigma*A) = J
#   mag(E) = mag(-j*omega*A) + mag(J/sigma)
#   rho*C*dT/dt - div(k*grad(T)) = Q
#   Q = 0.5*sigma*mag(E)^2
#
# Where:
#   - A is the magnetic vector potential
#   - j is the sqrt(-1)
#   - mu is the permeability of free space
#   - omega is the angular frequency of the system
#   - sigma is the electric conductivity of the wire
#   - J is the supplied DC current
#   - E is the electric field
#   - rho is the density of copper
#   - C is the heat capacity of copper
#   - T is the temperature
#   - k is the thermal conductivity of the wire
#   - Q is the Joule heating
#
# The BCs are as follows:
#
#   curl(n) x curl(A) = 0,  where n is the normal vector
#   q * n = h (T - T_infty), where q is the heat flux,
#                            h is the convective heat transfer coefficient,
#                            and T_infty is the far-field temperature.
[Mesh]
  # Mesh of the copper wire
  [fmg]
    type = FileMeshGenerator
    file = copper_wire.msh
  []
[]
[Variables]
  # The real and complex components of the magnetic vector
  # potential in the frequency domain
  [A_real]
    family = NEDELEC_ONE
    order = FIRST
  []
  [A_imag]
    family = NEDELEC_ONE
    order = FIRST
  []
  # The temperature of the air in the copper wire
  [T]
    initial_condition = 293.0 #in K
  []
[]
[Kernels]
  ### Physics to determine the magnetic vector potential propagation ###
  # The propagation of the real component
  [curl_curl_real]
    type = CurlCurlField
    variable = A_real
  []
  # Current induced by the electrical conductivity
  # of the copper wire
  [conduction_real]
    type = ADConductionCurrent
    variable = A_real
    field_imag =  A_imag
    field_real =  A_real
    conductivity_real = electrical_conductivity
    conductivity_imag = 0.0
    ang_freq_real = omega_real
    ang_freq_imag = 0.0
    permeability_real = mu_real
    permeability_imag = 0.0
    component = real
  []
  # Current supplied to the wire
  [source_real]
    type = VectorBodyForce
    variable = A_real
    function = mu_curr_real
  []
  # The propagation of the complex component
  [curl_curl_imag]
    type = CurlCurlField
    variable = A_imag
  []
  # Current induced by the electrical conductivity
  # of the copper wire
  [conduction_imag]
    type = ADConductionCurrent
    variable = A_imag
    field_imag =  A_imag
    field_real =  A_real
    conductivity_real = electrical_conductivity
    conductivity_imag = 0.0
    ang_freq_real = omega_real
    ang_freq_imag = 0.0
    permeability_real = mu_real
    permeability_imag = 0.0
    component = imaginary
  []
  ### Physics to determine the heat transfer ###
  # Heat transfer in the copper wire
  [HeatTdot_in_copper]
    type = ADHeatConductionTimeDerivative
    variable = T
    specific_heat = specific_heat_copper
    density_name = density_copper
  []
  [HeatDiff_in_copper]
    type = ADHeatConduction
    variable = T
    thermal_conductivity = thermal_conductivity_copper
  []
  # Heating due the total current
  [HeatSrc]
    type = ADJouleHeatingSource
    variable = T
    heating_term = 'electric_field_heating'
  []
[]
[AuxVariables]
  # Decomposing the magnetic vector potential
  # for the electric field calculations
  [A_x_real]
    family = MONOMIAL
    order = FIRST
  []
  [A_y_real]
    family = MONOMIAL
    order = FIRST
  []
  [A_x_imag]
    family = MONOMIAL
    order = FIRST
  []
  [A_y_imag]
    family = MONOMIAL
    order = FIRST
  []
  # The electrical conductivity for the electric
  # field calculations
  [elec_cond]
    family = MONOMIAL
    order = FIRST
  []
  # The electric field profile determined from
  # the magnetic vector potential
  [E_real]
    family = NEDELEC_ONE
    order = FIRST
  []
  [E_imag]
    family = NEDELEC_ONE
    order = FIRST
  []
[]
[AuxKernels]
  # Decomposing the magnetic vector potential
  # for the electric field calculations
  [A_x_real]
    type = VectorVariableComponentAux
    variable = A_x_real
    vector_variable = A_real
    component = X
  []
  [A_y_real]
    type = VectorVariableComponentAux
    variable = A_y_real
    vector_variable = A_real
    component = Y
  []
  [A_x_imag]
    type = VectorVariableComponentAux
    variable = A_x_imag
    vector_variable = A_imag
    component = X
  []
  [A_y_imag]
    type = VectorVariableComponentAux
    variable = A_y_imag
    vector_variable = A_imag
    component = Y
  []
  # The electrical conductivity for the electric
  # field calculations
  [cond]
    type = ADMaterialRealAux
    property = electrical_conductivity
    variable = elec_cond
    execute_on = 'INITIAL LINEAR TIMESTEP_END'
  []
  # The magnitude of electric field profile determined
  # from the magnetic vector potential using:
  # abs(E) = abs(-j*omega*A) + abs(supplied current / elec_cond)
  # NOTE: The reason for calculating the magnitude of the electric
  #       field is the heating term is defined as:
  #       Q = 1/2 abs(E)^2 for frequency domain field formulations
  [E_real]
    type = ParsedVectorAux
    coupled_variables = 'A_x_imag A_y_imag elec_cond'
    expression_x = 'abs(2*3.14*60*A_x_imag) + abs(60e6/elec_cond)'
    expression_y = 'abs(2*3.14*60*A_y_imag)'
    variable = E_real
  []
  [E_imag]
    type = ParsedVectorAux
    coupled_variables = 'A_x_real A_y_real'
    expression_x = 'abs(-2*3.14*60*A_x_real)'
    expression_y = 'abs(-2*3.14*60*A_y_real)'
    variable = E_imag
  []
[]
[Functions]
  # The supplied current density to the wire
  # where only the real x-component is considered
  [curr_real_x]
    type = ParsedFunction
    expression = '60e6' # Units in A/m^2, equivalent to 1178 A in a 5mm diameter wire
  []
  # Permeability of free space
  [mu_real_func]
    type = ParsedFunction
    expression = '4*pi*1e-7' # Units in N/A^2
  []
  # The angular drive frequency of the system
  [omega_real_func]
    type = ParsedFunction
    expression = '2*pi*60' # Units in rad/s
  []
  # The angular frequency time permeability of free space
  [omegaMu]
    type = ParsedFunction
    symbol_names = 'omega mu'
    symbol_values = 'omega_real_func mu_real_func'
    expression = 'omega*mu'
  []
  # The supplied current density time permeability of free space
  [mu_curr_real]
    type = ParsedVectorFunction
    symbol_names = 'current_mag mu'
    symbol_values = 'curr_real_x mu_real_func'
    expression_x = 'mu * current_mag'
  []
[]
[BCs]
  ### Temperature boundary conditions ###
  # Convective heat flux BC with copper wire
  # exposed to air
  [surface]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = walls
    T_infinity = 293
    heat_transfer_coefficient = 10
  []
  ### Magnetic vector potential boundary conditions ###
  # No defined boundary conditions represents
  # zero curl conditions at the boundaries, such that:
  # A x n = 0
[]
[Materials]
  [k]
    type = ADGenericConstantMaterial
    prop_names = 'thermal_conductivity_copper'
    prop_values = '397.48' #in W/(m K)
  []
  [cp]
    type = ADGenericConstantMaterial
    prop_names = 'specific_heat_copper'
    prop_values = '385.0' #in J/(kg K)
  []
  [rho]
    type = ADGenericConstantMaterial
    prop_names = 'density_copper'
    prop_values = '8920.0' #in kg/(m^3)
  []
  # Electrical conductivity (copper is default material)
  [sigma]
    type = ADElectricalConductivity
    temperature = T
    block = copper
  []
  # Material that supplies the correct Joule heating formulation
  [ElectromagneticMaterial]
    type = ElectromagneticHeatingMaterial
    electric_field = E_real
    complex_electric_field = E_imag
    electric_field_heating_name = electric_field_heating
    electrical_conductivity = electrical_conductivity
    formulation = FREQUENCY
    solver = ELECTROMAGNETIC
    block = copper
  []
  # Coefficient for wave propagation
  [mu_real]
    type = ADGenericFunctionMaterial
    prop_names = mu_real
    prop_values = mu_real_func
  []
  [omega_real]
    type = ADGenericFunctionMaterial
    prop_names = omega_real
    prop_values = omega_real_func
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  scheme = bdf2
  solve_type = NEWTON
  line_search = NONE
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  dt = 1.0
  # NOTE: Change 'end_time' to 10s to accurately simulate the fusing current
  # end_time = 10
  end_time = 5
  automatic_scaling = true
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(tutorials/shield_multiphysics/inputs/step07_mechanics/step7.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [gravity]
    type = Gravity
    variable = 'disp_z'
    value = '-9.81'
    block = 'concrete_hd concrete Al'
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    # This block adds all of the proper Kernels, strain calculators, and Variables
    # for Solid Mechanics equations in the correct coordinate system (autodetected)
    add_variables = true
    strain = FINITE
    eigenstrain_names = eigenstrain
    use_automatic_differentiation = true
    generate_output = 'vonmises_stress elastic_strain_xx elastic_strain_yy strain_xx strain_yy'
    block = 'concrete_hd concrete Al'
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
  [hold_ground_x]
    type = DirichletBC
    variable = disp_x
    boundary = ground
    value = 0
  []
  [hold_ground_y]
    type = DirichletBC
    variable = disp_y
    boundary = ground
    value = 0
  []
  [hold_ground_z]
    type = DirichletBC
    variable = disp_z
    boundary = ground
    value = 0
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
  [elasticity_tensor_concrete_hd]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 2.75e9 # (Pa)
    poissons_ratio = 0.15
    block = 'concrete_hd'
  []
  [elasticity_tensor_concrete]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 30e9 # (Pa)
    poissons_ratio = 0.2
    block = 'concrete'
  []
  [elasticity_tensor_Al]
    type = ADComputeIsotropicElasticityTensor
    youngs_modulus = 68e9 # (Pa)
    poissons_ratio = 0.36
    block = 'Al'
  []
  [elastic_stress]
    type = ADComputeFiniteStrainElasticStress
    block = 'concrete_hd concrete Al'
  []
  [thermal_strain_concrete_hd]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 1e-5 # 1/K
    block = 'concrete_hd'
  []
  [thermal_strain_concrete]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 1e-5 # 1/K
    block = 'concrete'
  []
  [thermal_strain_Al]
    type = ADComputeThermalExpansionEigenstrain
    stress_free_temperature = 300 # arbitrary value
    eigenstrain_name = eigenstrain
    temperature = T
    thermal_expansion_coeff = 2.4e-5 # 1/K
    block = 'Al'
  []
  # NOTE: This handles thermal expansion by coupling to the displacements
  [density_concrete_hd]
    type = Density
    block = 'concrete_hd'
    density = '3524' # kg / m3
  []
  [density_concrete]
    type = Density
    block = 'concrete'
    density = '2403' # kg / m3
  []
  [density_Al]
    type = Density
    block = 'Al'
    density = '2270' # kg / m3
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials defined on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Steady
  solve_type = NEWTON
  automatic_scaling = true
  petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
  petsc_options_value = 'hypre boomeramg 500'
  line_search = none
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere_mortar.i)
sphere_outer_htc = 10 # W/m^2/K
sphere_outer_Tinf = 300 # K
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '3'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
  coord_type = RZ
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  []
[]
[Variables]
  [temp]
    initial_condition = 500
  []
  [lm]
    order = SECOND
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[AuxVariables]
  [power_density]
    block = 'fuel'
    initial_condition = 50e3
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = temp
    block = '1 2'
  []
  [heat_source]
    type = CoupledForce
    variable = temp
    block = 'fuel'
    v = power_density
  []
[]
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 34.6
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 2
    primary_emissivity = 0.0
    secondary_emissivity = 0.0
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 2
    gap_conductivity = 5.0
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 3
    primary_subdomain = 10000
    secondary_boundary = 2
    secondary_subdomain = 10001
    gap_flux_models = 'radiation conduction'
    gap_geometry_type = SPHERE
    sphere_origin = '0 0 0'
  []
[]
[BCs]
  [RPV_out_BC] # k \nabla T = h (T- T_inf) at RPV outer boundary
    type = ConvectiveFluxFunction # (Robin BC)
    variable = temp
    boundary = '4' # outer RPV
    coefficient = ${sphere_outer_htc}
    T_infinity = ${sphere_outer_Tinf}
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
[]
[Outputs]
  exodus = true
  csv = true
  [Console]
    type = Console
  []
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '2 3'
    variable = temp
  []
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
  [ptot]
    type = ElementIntegralVariablePostprocessor
    variable = power_density
    block = 'fuel'
  []
  [sphere_convective_out]
    type = ConvectiveHeatTransferSideIntegral
    T_solid = temp
    boundary = '4' # outer RVP
    T_fluid = ${sphere_outer_Tinf}
    htc = ${sphere_outer_htc}
  []
  [heat_balance] # should be equal to 0 upon convergence
    type = ParsedPostprocessor
    expression = '(sphere_convective_out - ptot) / ptot'
    pp_names = 'sphere_convective_out ptot'
  []
[]
(modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = multiple_pairs.e
  []
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        add_variables = true
        strain = FINITE
        generate_output = 'stress_xx'
        block = '1 2 3'
      []
    []
  []
[]
[Materials]
  [stiffStuff]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stiffStuff_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[ICs]
  [disp_y]
    block = '2 3'
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Contact]
  [first_pair]
    primary = '20'
    secondary = '10 '
    model = frictionless
    formulation = mortar
    c_normal = 1e+06
  []
  [second_pair]
    primary = '20'
    secondary = '101'
    model = frictionless
    formulation = mortar
    c_normal = 1e+06
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    preset = false
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    preset = false
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    preset = false
    boundary = '30 301'
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    preset = false
    boundary = '50 501'
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  dt = 2.0
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor -snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 20
  nl_abs_tol = 1e-9
  line_search = 'none'
  end_time = 18
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = 'num_nl cumulative'
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
[]
(modules/solid_mechanics/test/tests/cross_section_deflection/test_adapt.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  use_displaced_mesh = false
  [file]
    type = FileMeshGenerator
    file = one_duct.e
  []
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.005'
    scale_factor = 1
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = SMALL
    block = '1'
  []
[]
[BCs]
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001'
    value = 0.0
  []
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '16'
    value = 0.0
  []
  [fix_z]
    type = DirichletBC
    variable = 'disp_z'
    boundary = '16'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '4'
      function = pressure
      factor = 80
    []
  []
[]
[VectorPostprocessors]
  [section_output]
    type = AverageSectionValueSampler
    axis_direction = '0 0 1'
    block = '1'
    variables = 'disp_x disp_y disp_z'
    reference_point = '0 0 0'
    require_equal_node_counts = false
  []
[]
[Adaptivity]
  steps = 1
  marker = box
  max_h_level = 2
  interval = 1
  [Markers]
    [box]
      type = BoxMarker
      bottom_left = '-2 -2 17.5'
      top_right = '2 2 21'
      inside = refine
      outside = do_nothing
    []
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeLinearElasticStress
    block = '1'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 1.0
[]
[Outputs]
  exodus = true
  csv = true
[]
(test/tests/meshgenerators/coarsen_block_generator/coarsen_hex_multi.i)
[Mesh]
  allow_renumbering = false
  # use these two to re-generate input.e
  [eg]
    type = CartesianMeshGenerator
    dim = 3
    dx = '2 1 1'
    dy = '2 3'
    dz = '2 3'
    ix = '2 1 1'
    iy = '2 3'
    iz = '3 2'
    subdomain_id = '0 1 1
                    1 2 0
                    0 1 1
                    1 2 0'
  []
  [add_internal]
    type = SideSetsBetweenSubdomainsGenerator
    input = eg
    paired_block = 1
    primary_block = 2
    new_boundary = middle
  []
  [refine]
    type = RefineBlockGenerator
    input = add_internal
    block = '0 1 2'
    refinement = '1 1 1'
    enable_neighbor_refinement = false
    output = true
  []
  final_generator = 'diag'
  [input]
    type = FileMeshGenerator
    file = 'single_nonuniform_hex.e'
  []
  # Go back to what we had
  [coarsen]
    type = CoarsenBlockGenerator
    input = input
    block = '0 1 2'
    coarsening = '1 1 1'
    # This was found by looking at the output of refine
    # careful, has transitions we dont support!
    starting_point = '2.75 0.75 0'
    maximum_volume_ratio = 4
    verbose = true
  []
  [diag]
    type = MeshDiagnosticsGenerator
    input = coarsen
    examine_element_overlap = ERROR
    search_for_adaptivity_nonconformality = WARNING
    examine_non_conformality = WARNING
  []
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/j_integral/j_integral_2d_block_restrict.i)
#This tests the J-Integral evaluation capability.
#This is a 2d plane strain model
#The analytic solution for J1 is 2.434.  This model
#converges to that solution with a refined mesh.
#Reference: National Agency for Finite Element Methods and Standards (U.K.):
#Test 1.1 from NAFEMS publication "Test Cases in Linear Elastic Fracture
#Mechanics" R0020.
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [input_mesh]
    type = FileMeshGenerator
    file = crack2d.e
  []
  [add_dummy_block]
    type = LowerDBlockFromSidesetGenerator
    input = input_mesh
    sidesets = 700
    new_block_name = 'lowerd_dummy'
    new_block_id = '2'
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[AuxVariables]
  [SED]
    order = CONSTANT
    family = MONOMIAL
    block = '1'
  []
[]
[Functions]
  [rampConstant]
    type = PiecewiseLinear
    x = '0. 1.'
    y = '0. 1.'
    scale_factor = -1e2
  []
[]
[DomainIntegral]
  integrals = JIntegral
  boundary = 800
  crack_direction_method = CrackDirectionVector
  crack_direction_vector = '1 0 0'
  2d = true
  axis_2d = 2
  radius_inner = '4.0 4.5 5.0 5.5 6.0'
  radius_outer = '4.5 5.0 5.5 6.0 6.5'
  output_q = false
  incremental = true
  block = '1'
  symmetry_plane = 1
[]
[Physics/SolidMechanics/QuasiStatic]
  [master]
    strain = FINITE
    add_variables = true
    incremental = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
    planar_formulation = PLANE_STRAIN
    block = '1'
  []
[]
[AuxKernels]
  [SED]
    type = MaterialRealAux
    variable = SED
    property = strain_energy_density
    execute_on = timestep_end
    block = '1'
  []
[]
[BCs]
  [crack_y]
    type = DirichletBC
    variable = disp_y
    boundary = 100
    value = 0.0
  []
  [no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 700
    value = 0.0
  []
  [Pressure]
    [Side1]
      boundary = 400
      function = rampConstant
    []
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 207000
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Executioner]
  type = Transient
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-ksp_gmres_restart'
  petsc_options_value = '101'
  line_search = 'none'
  l_max_its = 50
  nl_max_its = 20
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-5
  l_tol = 1e-2
  start_time = 0.0
  dt = 1
  end_time = 1
  num_steps = 1
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_3d.i)
# 3D mixed test
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Physics]
  [SolidMechanics]
    [QuasiStatic]
      [all]
        strain = FINITE
        add_variables = true
        new_system = true
        formulation = TOTAL
        volumetric_locking_correction = false
        constraint_types = 'stress strain strain strain stress strain strain strain strain'
        targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
        generate_output = 'pk1_stress_xx pk1_stress_xy pk1_stress_xz pk1_stress_yx pk1_stress_yy '
                          'pk1_stress_yz pk1_stress_zx pk1_stress_zy pk1_stress_zz '
                          'deformation_gradient_xx deformation_gradient_xy deformation_gradient_xz '
                          'deformation_gradient_yx deformation_gradient_yy deformation_gradient_yz '
                          'deformation_gradient_zx deformation_gradient_zy deformation_gradient_zz'
      []
    []
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '120.0*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '65*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain32]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain31]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-2*t'
  []
  [zero]
    type = ConstantFunction
    value = 0
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
    large_kinematics = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 20
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  [out]
    type = Exodus
    file_base = '3d'
  []
[]
(modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact.i)
[Mesh]
  [fmesh]
    type = FileMeshGenerator
    file = meshed_gap.e
  []
  [block0]
    type = SubdomainBoundingBoxGenerator
    input = fmesh
    bottom_left = '.5 -.5 0'
    top_right = '.7 .5 0'
    block_id = 4
  []
[]
[Variables]
  [./temp]
    block = '1 3'
    initial_condition = 1.0
  [../]
[]
[Kernels]
  [./hc]
    type = HeatConduction
    variable = temp
    block = '1 3'
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 1
  [../]
  [./right]
    type = DirichletBC
    variable = temp
    boundary = 4
    value = 2
  [../]
[]
[ThermalContact]
  [./gap_conductivity]
    type = GapHeatTransfer
    variable = temp
    primary = 2
    secondary = 3
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductivity = 0.5
  [../]
[]
[Materials]
  [./hcm]
    type = HeatConductionMaterial
    block = '1 3'
    temp = temp
    thermal_conductivity = 1
  [../]
[]
[Problem]
  type = FEProblem
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  [./out]
    type = Exodus
  [../]
[]
(modules/solid_mechanics/test/tests/j_integral_vtest/j_int_fgm_sif.i)
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y disp_z'
  volumetric_locking_correction = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = multiple_blocks_bimaterial.e
  []
  partitioner = centroid
  centroid_partitioner_direction = z
[]
[AuxVariables]
  [SED]
    order = CONSTANT
    family = MONOMIAL
  []
  [resid_z]
  []
[]
[Functions]
  [rampConstantUp]
    type = PiecewiseLinear
    x = '0. 1.'
    y = '0. 1'
    scale_factor = -68.95 #MPa
  []
  [elastic_mod_material_der]
    type = ParsedFunction
    expression = 'if(y < 229, 0.0, if(y>279, 0, 20680*0460517019*exp(0.0460517019*(y-229))))'
  []
  [elastic_mod_material]
    type = ParsedFunction
    expression = 'if(y < 229, 20680, if(y>279, 206800, 20680*exp(0.0460517019*(y-229))))'
  []
[]
[DomainIntegral]
  integrals = 'JIntegral InteractionIntegralKI'
  boundary = 1001
  crack_direction_method = CurvedCrackFront
  crack_end_direction_method = CrackDirectionVector
  crack_direction_vector_end_1 = '0.0 1.0 0.0'
  crack_direction_vector_end_2 = '1.0 0.0 0.0'
  radius_inner = '12.5 25.0 100'
  radius_outer = '25.0 37.5 150.0'
  intersecting_boundary = '1 2'
  symmetry_plane = 2
  incremental = true
  functionally_graded_youngs_modulus = elastic_mod_material_mat
  youngs_modulus = 20680
  poissons_ratio = 0.3
  block = '1 2'
[]
[Physics/SolidMechanics/QuasiStatic]
  [master]
    strain = FINITE
    add_variables = true
    incremental = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
    block = '1 2'
  []
[]
[AuxKernels]
  [SED]
    type = MaterialRealAux
    variable = SED
    property = strain_energy_density
    execute_on = timestep_end
  []
[]
[BCs]
  [crack_y]
    type = DirichletBC
    variable = disp_z
    boundary = 6
    value = 0.0
  []
  [no_y]
    type = DirichletBC
    variable = disp_y
    boundary = 12
    value = 0.0
  []
  [no_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1
    value = 0.0
  []
  [Pressure]
    [Side1]
      boundary = 5
      function = rampConstantUp # BCs
    []
  []
[]
[Materials]
  [generic_materials]
    type = GenericFunctionMaterial
    prop_names = 'elastic_mod_material_mat elastic_mod_material_der_mat'
    prop_values = 'elastic_mod_material elastic_mod_material_der'
  []
  [elasticity_tensor]
    type = ComputeVariableIsotropicElasticityTensor
    youngs_modulus = elastic_mod_material_mat
    poissons_ratio = 0.3
    args = ''
  []
  [elastic_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  line_search = 'none'
  l_max_its = 50
  nl_max_its = 20
  nl_abs_tol = 1e-5
  nl_rel_tol = 1e-8
  l_tol = 1e-6
  start_time = 0.0
  dt = 1
  end_time = 1
  num_steps = 1
[]
[Postprocessors]
  [_dt]
    type = TimestepSize
  []
  [nl_its]
    type = NumNonlinearIterations
  []
  [lin_its]
    type = NumLinearIterations
  []
  [react_z]
    type = NodalSum
    variable = resid_z
    boundary = 5
  []
[]
[Outputs]
  execute_on = 'timestep_end'
  csv = true
  exodus = true
[]
(test/tests/userobjects/mortar_user_object/displaced_test.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
  displacements = 'disp_x disp_y'
[]
[Problem]
  solve = false
[]
[UserObjects]
  [weighted_gap_uo]
    type = TestWeightedGapUserObject
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    weighted_gap_aux_var = "gap2"
    execute_on = 'linear nonlinear timestep_end'
  []
[]
[AuxVariables]
  [gap]
    block = '10'
  []
  [gap2]
    block = '10'
  []
  [disp_x]
    block = 'left right'
  []
  [disp_y]
    block = 'left right'
  []
[]
[ICs]
  [disp_x]
    block = 'left'
    type = ConstantIC
    value = '-1e-2'
    variable = disp_x
  []
[]
[AuxKernels]
  [gap]
    type = WeightedGapAux
    variable = gap
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    use_displaced_mesh = true
  []
  [gap2]
    type = GetMortarGapUOValue
    variable = gap2
    boundary = 1
    weighted_gap_uo = weighted_gap_uo
    execute_on = 'linear nonlinear timestep_end'
  []
[]
[Postprocessors]
  [gap]
    type = ElementAverageValue
    block = 10
    variable = gap
    execute_on = 'timestep_end'
    force_postaux = true
  []
  [gap2]
    type = ElementAverageValue
    block = 10
    variable = gap2
    execute_on = 'timestep_end'
    force_postaux = true
  []
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
(test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga_nosplines.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = PressurizedCyl_Patch6_4Elem.e
    clear_spline_nodes = true
  []
  allow_renumbering = false   # VTK diffs via XMLDiff are
  parallel_type = replicated  # really fragile
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = u
  []
  [diff]
    type = Diffusion
    variable = u
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = 'sin(x)'
  []
[]
[Executioner]
  type = Transient
  num_steps = 2
  solve_type = NEWTON
  dtmin = 1
[]
[Outputs]
  vtk = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = cond_number.e
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-ksp_snes_ew'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = ' 201                hypre    boomeramg      8'
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 50
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.2 # 1.0
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[Contact]
  [al_friction]
    formulation = mortar_penalty
    model = coulomb
    primary = '2'
    secondary = '3'
    penalty = 1e7
    penalty_friction = 1e+7
    friction_coefficient = 0.4
    al_penetration_tolerance = 1e-7
    al_incremental_slip_tolerance = 1.0 # Not active
    penalty_multiplier = 100
  []
[]
(modules/contact/test/tests/pdass_problems/ironing.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = iron.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '10'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '20'
    new_block_name = 'primary_lower'
    input = secondary
  []
  patch_update_strategy = auto
  patch_size = 20
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [frictionless_normal_lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
    use_dual = true
  []
  [tangential_lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
    use_dual = true
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
  [von_mises]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 2. 8.'
    y = '0. -1.0 -1.0'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 8.' # x = '0. 2. 8.'
    y = '0. 8.' # y = '0. 0. 8'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    save_in = 'saved_x saved_y'
    block = '1 2'
    strain = FINITE
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [von_mises_kernel]
    #Calculates the von mises stress and assigns it to von_mises
    type = RankTwoScalarAux
    variable = von_mises
    rank_two_tensor = stress
    execute_on = timestep_end
    scalar_type = VonMisesStress
    block = '1 2'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 20
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 20
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 10
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 10
  []
  [_dt]
    type = TimestepSize
  []
  [contact_pressure]
    type = NodalVariableValue
    variable = frictionless_normal_lm
    nodeid = 805
  []
[]
[BCs]
  [bot_x_disp]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
    preset = false
  []
  [bot_y_disp]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
    preset = false
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = disp_ramp_vert
    preset = false
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = '30'
    function = disp_ramp_horz
    preset = false
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 6896
    poissons_ratio = 0.32
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '2'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 689.6
    poissons_ratio = 0.32
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
  petsc_options_value = 'lu     superlu_dist'
  line_search = 'none'
  nl_abs_tol = 1e-7
  nl_rel_tol = 1e-7
  l_tol = 1e-6
  l_max_its = 50
  nl_max_its = 30
  start_time = 0.0
  end_time = 0.1 # 6.5
  dt = 0.0125
  dtmin = 1e-5
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [cont_press]
    type = NodalValueSampler
    variable = frictionless_normal_lm
    boundary = '10'
    sort_by = id
    execute_on = FINAL
  []
  [friction]
    type = NodalValueSampler
    variable = tangential_lm
    boundary = '10'
    sort_by = id
    execute_on = FINAL
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = false
  csv = true
  [chkfile]
    type = CSV
    show = 'cont_press friction'
    start_time = 0.0
    execute_vector_postprocessors_on = FINAL
  []
  [console]
    type = Console
    max_rows = 5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[UserObjects]
  [weighted_vel_uo]
    type = LMWeightedVelocitiesUserObject
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    lm_variable_normal = frictionless_normal_lm
    lm_variable_tangential_one = tangential_lm
    secondary_variable = disp_x
    disp_x = disp_x
    disp_y = disp_y
  []
[]
[Constraints]
  # All constraints below for mechanical contact (Mortar)
  [weighted_gap_lm]
    type = ComputeFrictionalForceLMMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    variable = frictionless_normal_lm
    disp_x = disp_x
    disp_y = disp_y
    use_displaced_mesh = true
    friction_lm = tangential_lm
    mu = 0.5
    c_t = 1.0e1
    c = 1.0e3
    weighted_gap_uo = weighted_vel_uo
    weighted_velocities_uo = weighted_vel_uo
  []
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = frictionless_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_vel_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = frictionless_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_vel_uo
  []
  [tangential_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = tangential_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_vel_uo
  []
  [tangential_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = tangential_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = weighted_vel_uo
  []
[]
(modules/solid_mechanics/test/tests/CylindricalRankTwoAux/test.i)
[Mesh]
  [file_mesh]
    type = FileMeshGenerator
    file = circle.e
  []
  [cnode]
    type = ExtraNodesetGenerator
    coord = '1000.0 0.0'
    new_boundary = 10
    input = file_mesh
  []
[]
[Variables]
  [./disp_x]
  [../]
  [./disp_y]
  [../]
[]
[AuxVariables]
  [./T]
  [../]
  [./stress_rr]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./stress_tt]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[ICs]
  [./T_IC]
    type = FunctionIC
    variable = T
    function = '1000-0.7*sqrt(x^2+y^2)'
  [../]
[]
[Kernels]
  [SolidMechanics]
    displacements = 'disp_x disp_y'
  [../]
[]
[AuxKernels]
  [./stress_rr]
    type = CylindricalRankTwoAux
    variable = stress_rr
    rank_two_tensor = stress
    index_j = 0
    index_i = 0
    center_point = '0 0 0'
  [../]
  [./stress_tt]
    type = CylindricalRankTwoAux
    variable = stress_tt
    rank_two_tensor = stress
    index_j = 1
    index_i = 1
    center_point = '0 0 0'
  [../]
[]
[BCs]
  [./outer_x]
    type = DirichletBC
    variable = disp_x
    boundary = 2
    value = 0
  [../]
  [./outer_y]
    type = DirichletBC
    variable = disp_y
    boundary = '2 10'
    value = 0
  [../]
[]
[Materials]
  [./iso_C]
    type = ComputeElasticityTensor
    fill_method = symmetric_isotropic
    C_ijkl = '2.15e5 0.74e5'
    block = 1
  [../]
  [./strain]
    type = ComputeSmallStrain
    displacements = 'disp_x disp_y'
    block = 1
    eigenstrain_names = eigenstrain
  [../]
  [./stress]
    type = ComputeLinearElasticStress
    block = 1
  [../]
  [./thermal_strain]
    type= ComputeThermalExpansionEigenstrain
    thermal_expansion_coeff = 1e-6
    temperature = T
    stress_free_temperature = 273
    block = 1
    eigenstrain_name = eigenstrain
  [../]
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart'
  petsc_options_value = 'hypre boomeramg 101'
  l_max_its = 30
  nl_max_its = 10
  nl_abs_tol = 1e-9
  nl_rel_tol = 1e-14
  l_tol = 1e-4
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(test/tests/preconditioners/vcp/vcp_test.i)
[Mesh]
  [original_file_mesh]
    type = FileMeshGenerator
    file = non_conform_2blocks.e
  []
  [secondary_side]
    input = original_file_mesh
    type = LowerDBlockFromSidesetGenerator
    sidesets = '10'
    new_block_id = '100'
    new_block_name = 'secondary_side'
  []
  [primary_side]
    input = secondary_side
    type = LowerDBlockFromSidesetGenerator
    sidesets = '20'
    new_block_id = '200'
    new_block_name = 'primary_side'
  []
[]
[Functions]
  [exact_sln]
    type = ParsedFunction
    expression = sin(2*pi*x)*sin(2*pi*y)
  []
  [ffn]
    type = ParsedFunction
    expression = 8*pi*pi*sin(2*pi*x)*sin(2*pi*y)
  []
[]
[Variables]
  [u]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = secondary_side
    use_dual = true
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [ffn]
    type = BodyForce
    variable = u
    function = ffn
  []
[]
[Constraints]
  [ced]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = 20
    primary_subdomain = 200
    secondary_boundary = 10
    secondary_subdomain = 100
  []
[]
[BCs]
  [all]
    type = DirichletBC
    variable = u
    boundary = '30 40'
    value = 0.0
  []
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_sln
    variable = u
    boundary = '50 60'
  []
[]
[Postprocessors]
  [l2_error]
    type = ElementL2Error
    variable = u
    function = exact_sln
    block = '1 2'
    execute_on = 'initial timestep_end'
  []
[]
[Preconditioning]
  [vcp]
    type = VCP
    full = true
    lm_variable = 'lm'
    primary_variable = 'u'
    preconditioner = 'AMG'
    is_lm_coupling_diagonal = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
  l_max_its = 100
  nl_rel_tol = 1e-6
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_separate.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
  [lm_conduction]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 0.02
    use_displaced_mesh = true
  []
[]
[Constraints]
  [ced_radiation]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = 'radiation'
  []
  [ced_conduction]
    type = ModularGapConductanceConstraint
    variable = lm_conduction
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = 'conduction'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(tutorials/shield_multiphysics/inputs/step06_transient_heat_conduction/step6_pseudo_transient.i)
cp_multiplier = 1e-6
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
    initial_condition = 300
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = ${fparse cp_multiplier * 1050}
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = ${fparse cp_multiplier * 1050}
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = ${fparse cp_multiplier * 875}
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Transient
  steady_state_detection = true
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
  # Difficult to converge with relative tolerance close to steady-state
  nl_abs_tol = 1e-8
[]
[Outputs]
  exodus = true
[]
(test/tests/geomsearch/3d_penetration_locator/3d_rings.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = rings_facing.e
  []
  allow_renumbering = false
[]
[AuxVariables]
  [penet]
    family = MONOMIAL
    order = CONSTANT
    block = structure
  []
[]
[AuxKernels]
  [penet]
    type = PenetrationAux
    variable = penet
    boundary = 'bottom_structure'
    paired_boundary = 'top_heat_source'
  []
[]
[VectorPostprocessors]
  [values]
    type = ElementValueSampler
    variable = penet
    sort_by = 'id'
    block = 'structure'
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  csv = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction_function.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[AuxVariables]
  [dummy]
    order = FIRST
    family = LAGRANGE
    initial_condition = 1.0
  []
[]
[Functions]
  [function]
    type = ParsedFunction
      expression = 'if(t > 100.0, 0.0, t)'
  []
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity = 10.0
    gap_conductivity_function_variable = dummy
    gap_conductivity_function = function
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = conduction
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  exodus = false
  csv = true
[]
(modules/contact/examples/2d_indenter/indenter_rz_fine.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Problem]
  type = ReferenceResidualProblem
  reference_vector = 'ref'
  extra_tag_vectors = 'ref'
[]
[Mesh]
  patch_update_strategy = auto
  patch_size = 2
  partitioner = centroid
  centroid_partitioner_direction = y
  [simple_mesh]
    type = FileMeshGenerator
    file = indenter_rz_fine_bigsideset.e
  []
  # For NodalVariableValue to work with distributed mesh
  allow_renumbering = false
  coord_type = RZ
[]
[Functions]
  [disp_y]
    type = PiecewiseLinear
    x = '0.  1.0     2.0    2.6   3.0'
    y = '0.  -4.5   -5.7   -5.7  -4.0'
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[AuxVariables]
  [saved_x]
  []
  [saved_y]
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    block = '1 2'
    use_automatic_differentiation = false
    generate_output = 'stress_xx stress_xy stress_xz stress_yy stress_zz'
    save_in = 'saved_x saved_y'
  []
[]
[BCs]
  # Symmetries of the Problem
  [symm_x_indenter]
    type = DirichletBC
    variable = disp_x
    boundary = 5
    value = 0.0
  []
  [symm_x_material]
    type = DirichletBC
    variable = disp_x
    boundary = 9
    value = 0.0
  []
  # Material should not fly away
  [material_base_y]
    type = DirichletBC
    variable = disp_y
    boundary = 8
    value = 0.0
  []
  # Drive indenter motion
  [disp_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 1
    function = disp_y
  []
[]
[Contact]
  [contact]
    secondary = 4
    primary = 6
    model = frictionless
    # Investigate von Mises stress at the edge
    correct_edge_dropping = true
    formulation = mortar
    c_normal = 1e+2
  []
[]
[UserObjects]
  [slip_rate_gss]
    type = CrystalPlasticitySlipRateGSS
    variable_size = 48
    slip_sys_file_name = input_slip_sys_bcc48.txt
    num_slip_sys_flowrate_props = 2
    flowprops = '1 48 0.0001 0.01'
    uo_state_var_name = state_var_gss
    slip_incr_tol = 10.0
    block = 2
  []
  [slip_resistance_gss]
    type = CrystalPlasticitySlipResistanceGSS
    variable_size = 48
    uo_state_var_name = state_var_gss
    block = 2
  []
  [state_var_gss]
    type = CrystalPlasticityStateVariable
    variable_size = 48
    groups = '0 24 48'
    group_values = '900 1000' #120
    uo_state_var_evol_rate_comp_name = state_var_evol_rate_comp_gss
    scale_factor = 1.0
    block = 2
  []
  [state_var_evol_rate_comp_gss]
    type = CrystalPlasticityStateVarRateComponentGSS
    variable_size = 48
    hprops = '1.4 1000 1200 2.5'
    uo_slip_rate_name = slip_rate_gss
    uo_state_var_name = state_var_gss
    block = 2
  []
[]
[Materials]
  [tensor]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1.0e7
    poissons_ratio = 0.25
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [crysp]
    type = FiniteStrainUObasedCP
    block = 2
    stol = 1e-2
    tan_mod_type = exact
    uo_slip_rates = 'slip_rate_gss'
    uo_slip_resistances = 'slip_resistance_gss'
    uo_state_vars = 'state_var_gss'
    uo_state_var_evol_rate_comps = 'state_var_evol_rate_comp_gss'
    maximum_substep_iteration = 20
  []
  [elasticity_tensor]
    type = ComputeElasticityTensorCP
    block = 2
    C_ijkl = '265190 113650 113650 265190 113650 265190 75769 75769 75760'
    fill_method = symmetric9
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
                        '-pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
  line_search = 'none'
  automatic_scaling = true
  nl_abs_tol = 2.0e-07
  nl_rel_tol = 2.0e-07
  l_max_its = 40
  l_abs_tol = 1e-08
  l_tol = 1e-08
  start_time = 0.0
  dt = 0.01
  end_time = 3.0 # Executioner
[]
[Postprocessors]
  [maxdisp]
    type = NodalVariableValue
    nodeid = 39
    variable = disp_y
  []
  [resid_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
[]
[Outputs]
  [out]
    type = Exodus
    elemental_as_nodal = true
  []
  perf_graph = true
  csv = true
[]
(test/tests/mortar/aux-gap/gap.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = '10'
    use_dual = true
  []
[]
[AuxVariables]
  [gap]
    block = '10'
  []
[]
[AuxKernels]
  [gap]
    type = WeightedGapAux
    variable = gap
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
  [dofmap]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(modules/porous_flow/examples/multiapp_fracture_flow/3dFracture/fracture_only_aperture_changing.i)
# Cold water injection into one side of the fracture network, and production from the other side
injection_rate = 10 # kg/s
[Mesh]
  uniform_refine = 0
  [cluster34]
    type = FileMeshGenerator
    file = 'Cluster_34.exo'
  []
  [injection_node]
    type = BoundingBoxNodeSetGenerator
    input = cluster34
    bottom_left = '-1000 0 -1000'
    top_right = '1000 0.504 1000'
    new_boundary = injection_node
  []
[]
[GlobalParams]
  PorousFlowDictator = dictator
  gravity = '0 0 -9.81E-6' # Note the value, because of pressure_unit
[]
[Variables]
  [frac_P]
    scaling = 1E6
  []
  [frac_T]
    initial_condition = 473
  []
[]
[ICs]
  [frac_P]
    type = FunctionIC
    variable = frac_P
    function = insitu_pp
  []
[]
[PorousFlowFullySaturated]
  coupling_type = ThermoHydro
  porepressure = frac_P
  temperature = frac_T
  fp = water
  pressure_unit = MPa
[]
[Kernels]
  [toMatrix]
    type = PorousFlowHeatMassTransfer
    variable = frac_T
    v = transferred_matrix_T
    transfer_coefficient = heat_transfer_coefficient
    save_in = joules_per_s
  []
[]
[AuxVariables]
  [heat_transfer_coefficient]
    family = MONOMIAL
    order = CONSTANT
    initial_condition = 0.0
  []
  [transferred_matrix_T]
    initial_condition = 473
  []
  [joules_per_s]
  []
  [normal_dirn_x]
    family = MONOMIAL
    order = CONSTANT
  []
  [normal_dirn_y]
    family = MONOMIAL
    order = CONSTANT
  []
  [normal_dirn_z]
    family = MONOMIAL
    order = CONSTANT
  []
  [enclosing_element_normal_length]
    family = MONOMIAL
    order = CONSTANT
  []
  [enclosing_element_normal_thermal_cond]
    family = MONOMIAL
    order = CONSTANT
  []
  [aperture]
    family = MONOMIAL
    order = CONSTANT
  []
  [perm_times_app]
    family = MONOMIAL
    order = CONSTANT
  []
  [density]
    family = MONOMIAL
    order = CONSTANT
  []
  [viscosity]
    family = MONOMIAL
    order = CONSTANT
  []
  [insitu_pp]
  []
[]
[AuxKernels]
  [normal_dirn_x_auxk]
    type = PorousFlowElementNormal
    variable = normal_dirn_x
    component = x
  []
  [normal_dirn_y]
    type = PorousFlowElementNormal
    variable = normal_dirn_y
    component = y
  []
  [normal_dirn_z]
    type = PorousFlowElementNormal
    variable = normal_dirn_z
    component = z
  []
  [heat_transfer_coefficient_auxk]
    type = ParsedAux
    variable = heat_transfer_coefficient
    coupled_variables = 'enclosing_element_normal_length enclosing_element_normal_thermal_cond'
    constant_names = h_s
    constant_expressions = 1E3 # should be much bigger than thermal_conductivity / L ~ 1
    expression = 'if(enclosing_element_normal_length = 0, 0, h_s * enclosing_element_normal_thermal_cond * 2 * enclosing_element_normal_length / (h_s * enclosing_element_normal_length * enclosing_element_normal_length + enclosing_element_normal_thermal_cond * 2 * enclosing_element_normal_length))'
  []
  [aperture]
    type = PorousFlowPropertyAux
    variable = aperture
    property = porosity
  []
  [perm_times_app]
    type = PorousFlowPropertyAux
    variable = perm_times_app
    property = permeability
    row = 0
    column = 0
  []
  [density]
    type = PorousFlowPropertyAux
    variable = density
    property = density
    phase = 0
  []
  [viscosity]
    type = PorousFlowPropertyAux
    variable = viscosity
    property = viscosity
    phase = 0
  []
  [insitu_pp]
    type = FunctionAux
    execute_on = initial
    variable = insitu_pp
    function = insitu_pp
  []
[]
[BCs]
  [inject_heat]
    type = DirichletBC
    boundary = injection_node
    variable = frac_T
    value = 373
  []
[]
[DiracKernels]
  [inject_fluid]
    type = PorousFlowPointSourceFromPostprocessor
    mass_flux = ${injection_rate}
    point = '58.8124 0.50384 74.7838'
    variable = frac_P
  []
  [withdraw_fluid]
    type = PorousFlowPeacemanBorehole
    SumQuantityUO = kg_out_uo
    bottom_p_or_t = 10.6 # 1MPa + approx insitu at production point, to prevent aperture closing due to low porepressures
    character = 1
    line_length = 1
    point_file = production.xyz
    unit_weight = '0 0 0'
    fluid_phase = 0
    use_mobility = true
    variable = frac_P
  []
  [withdraw_heat]
    type = PorousFlowPeacemanBorehole
    SumQuantityUO = J_out_uo
    bottom_p_or_t = 10.6 # 1MPa + approx insitu at production point, to prevent aperture closing due to low porepressures
    character = 1
    line_length = 1
    point_file = production.xyz
    unit_weight = '0 0 0'
    fluid_phase = 0
    use_mobility = true
    use_enthalpy = true
    variable = frac_T
  []
[]
[UserObjects]
  [kg_out_uo]
    type = PorousFlowSumQuantity
  []
  [J_out_uo]
    type = PorousFlowSumQuantity
  []
[]
[FluidProperties]
  [true_water]
    type = Water97FluidProperties
  []
  [water]
    type = TabulatedBicubicFluidProperties
    fp = true_water
    temperature_min = 275 # K
    temperature_max = 600
    interpolated_properties = 'density viscosity enthalpy internal_energy'
    fluid_property_output_file = water97_tabulated.csv
    # Comment out the fp parameter and uncomment below to use the newly generated tabulation
    # fluid_property_file = water97_tabulated.csv
  []
[]
[Materials]
  [porosity]
    type = PorousFlowPorosityLinear
    porosity_ref = 1E-4 # fracture porosity = 1.0, but must include fracture aperture of 1E-4 at P = insitu_pp
    P_ref = insitu_pp
    P_coeff = 1E-3 # this is in metres/MPa, ie for P_ref = 1/P_coeff, the aperture becomes 1 metre
    porosity_min = 1E-5
  []
  [permeability]
    type = PorousFlowPermeabilityKozenyCarman
    k0 = 1E-15 # fracture perm = 1E-11 m^2, but must include fracture aperture of 1E-4
    poroperm_function = kozeny_carman_phi0
    m = 0
    n = 3
    phi0 = 1E-4
  []
  [internal_energy]
    type = PorousFlowMatrixInternalEnergy
    density = 2700 # kg/m^3
    specific_heat_capacity = 0 # basically no rock inside the fracture
  []
  [aq_thermal_conductivity]
    type = PorousFlowThermalConductivityIdeal
    dry_thermal_conductivity = '0.6E-4 0 0  0 0.6E-4 0  0 0 0.6E-4' # thermal conductivity of water times fracture aperture.  This should increase linearly with aperture, but is set constant in this model
  []
[]
[Functions]
  [kg_rate]
    type = ParsedFunction
    symbol_values = 'dt kg_out'
    symbol_names = 'dt kg_out'
    expression = 'kg_out/dt'
  []
  [insitu_pp]
    type = ParsedFunction
    expression = '10 - 0.847E-2 * z' # Approximate hydrostatic in MPa
  []
[]
[Postprocessors]
  [dt]
    type = TimestepSize
    outputs = 'none'
  []
  [kg_out]
    type = PorousFlowPlotQuantity
    uo = kg_out_uo
  []
  [kg_per_s]
    type = FunctionValuePostprocessor
    function = kg_rate
  []
  [J_out]
    type = PorousFlowPlotQuantity
    uo = J_out_uo
  []
  [TK_out]
    type = PointValue
    variable = frac_T
    point = '101.705 160.459 39.5722'
  []
  [P_out]
    type = PointValue
    variable = frac_P
    point = '101.705 160.459 39.5722'
  []
  [P_in]
    type = PointValue
    variable = frac_P
    point = '58.8124 0.50384 74.7838'
  []
[]
[VectorPostprocessors]
  [heat_transfer_rate]
    type = NodalValueSampler
    outputs = none
    sort_by = id
    variable = joules_per_s
  []
[]
[Preconditioning]
  [entire_jacobian]
    type = SMP
    full = true
    petsc_options_iname = '-pc_type -sub_pc_type -sub_pc_factor_shift_type -pc_asm_overlap'
    petsc_options_value = ' asm      lu           NONZERO                   2             '
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  [TimeStepper]
    type = IterationAdaptiveDT
    dt = 1
    optimal_iterations = 10
    growth_factor = 1.5
  []
  dtmax = 1E8
  end_time = 1E8
  nl_abs_tol = 1E-3
  nl_max_its = 20
[]
[Outputs]
  print_linear_residuals = false
  csv = true
  [ex]
    type = Exodus
    sync_times = '1 10 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 4100 4200 4300 4400 4500 4600 4700 4800 4900 5000 5100 5200 5300 5400 5500 5600 5700 5800 5900 6000 6100 6200 6300 6400 6500 6600 6700 6800 6900 7000 7100 7200 7300 7400 7500 7600 7700 7800 7900 8000 8100 8200 8300 8400 8500 8600 8700 8800 8900 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000 30000 50000 70000 100000 200000 300000 400000 500000 600000 700000 800000 900000 1000000 1100000 1200000 1300000 1400000 1500000 1600000 1700000 1800000 1900000 2000000 2100000 2200000 2300000 2400000 2500000 2600000 2700000 2800000 2900000'
    sync_only = true
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere.i)
sphere_outer_htc = 10 # W/m^2/K
sphere_outer_Tinf = 300 # K
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  allow_renumbering = false
  coord_type = RZ
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  []
[]
[Variables]
  [temp]
    initial_condition = 500
  []
[]
[AuxVariables]
  [gap_conductance]
    order = CONSTANT
    family = MONOMIAL
  []
  [power_density]
    block = 'fuel'
    initial_condition = 50e3
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = temp
  []
  [heat_source]
    type = CoupledForce
    variable = temp
    block = 'fuel'
    v = power_density
  []
[]
[AuxKernels]
  [gap_cond]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_conductance
    boundary = 2
  []
[]
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 34.6
  []
[]
[ThermalContact]
  [thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0.0
    emissivity_secondary = 0.0
    gap_conductivity = 5
  #  quadrature = true
    gap_geometry_type = SPHERE
    sphere_origin = '0 0 0'
  []
[]
[BCs]
  [RPV_out_BC] # k \nabla T = h (T- T_inf) at RPV outer boundary
    type = ConvectiveFluxFunction # (Robin BC)
    variable = temp
    boundary = '4' # outer RPV
    coefficient = ${sphere_outer_htc}
    T_infinity = ${sphere_outer_Tinf}
  []
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '2 3'
    variable = temp
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
  [Quadrature]
    order = fifth
    side_order = seventh
  []
[]
[Outputs]
  exodus = true
  csv = true
  [Console]
    type = Console
  []
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
  [ptot]
    type = ElementIntegralVariablePostprocessor
    variable = power_density
    block = 'fuel'
  []
  [sphere_convective_out]
    type = ConvectiveHeatTransferSideIntegral
    T_solid = temp
    boundary = '4' # outer RVP
    T_fluid = ${sphere_outer_Tinf}
    htc = ${sphere_outer_htc}
  []
  [heat_balance] # should be equal to 0 upon convergence
    type = ParsedPostprocessor
    expression = '(sphere_convective_out - ptot) / ptot'
    pp_names = 'sphere_convective_out ptot'
  []
[]
(modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap-action.i)
starting_point = 2e-1
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
  scaling = 1e0
  preset = false
[]
[Mesh]
  [mesh_file]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks.e
  []
  [remove_blocks]
    type = BlockDeletionGenerator
    input = mesh_file
    block = '3 4'
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[Contact]
  [weighted_gap]
    formulation = mortar_penalty
    model = frictionless
    secondary = 10
    primary = 20
    penalty = 1e0
    use_dual = false
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -pc_svd_monitor '
                  '-snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-5'
  l_max_its = 30
  nl_max_its = 20
  line_search = 'none'
  snesmf_reuse_base = true
  abort_on_solve_fail = true
  nl_rel_tol = 1e-13
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  active = 'num_nl cumulative'
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
[]
(test/tests/meshgenerators/mesh_extruder_generator/extrude_angle.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = chimney_quad.e
  []
  [./extrude]
    type = MeshExtruderGenerator
    input = fmg
    num_layers = 20
    extrusion_vector = '1e-2 1e-2 0'
    bottom_sideset = '10'
    top_sideset = '20'
  []
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = 10
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = 20
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  file_base = out_quad_angle
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/neml2/small_neml.i)
constraint_types = 'strain none none stress stress stress stress none stress'
targets = 'strain11 zero zero zero zero zero'
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
                0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[BCs]
  [fix1_x]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_x
    vector_tags = residual
  []
[]
[BCs]
  [fix1_y]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_y
    vector_tags = residual
  []
[]
[BCs]
  [fix1_z]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_z
    vector_tags = residual
  []
[]
[BCs]
  [fix2_x]
    type = DirichletBC
    boundary = fix_xy
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_x
    vector_tags = residual
  []
[]
[BCs]
  [fix2_y]
    type = DirichletBC
    boundary = fix_xy
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_y
    vector_tags = residual
  []
[]
[BCs]
  [fix3_z]
    type = DirichletBC
    boundary = fix_z
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_z
    vector_tags = residual
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = t
  []
[]
[Functions]
  [zero]
    type = ConstantFunction
    value = 0
  []
[]
[Materials]
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
    constraint_types = ${constraint_types}
    targets = ${targets}
    macro_gradient = hvar
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
    displacements = 'disp_x disp_y disp_z'
  []
[]
[Materials]
  [neml2_stress_to_moose]
    type = NEML2ToMOOSESymmetricRankTwoTensorMaterialProperty
    block = ''
    from_neml2 = state/S
    neml2_executor = neml2_model_all
    outputs = none
    to_moose = neml2_stress
  []
  [neml2_jacobian_to_moose]
    type = NEML2ToMOOSESymmetricRankFourTensorMaterialProperty
    block = ''
    from_neml2 = state/S
    neml2_executor = neml2_model_all
    neml2_input_derivative = forces/E
    outputs = none
    to_moose = neml2_jacobian
  []
[]
[Materials]
  [convert_strain]
    type = RankTwoTensorToSymmetricRankTwoTensor
    from = mechanical_strain
    outputs = none
    to = neml2_strain
  []
[]
[Materials]
  [stress]
    type = ComputeLagrangianObjectiveCustomSymmetricStress
    custom_small_jacobian = neml2_jacobian
    custom_small_stress = neml2_stress
    large_kinematics = false
    outputs = none
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
[]
[UserObjects]
  [moose_strain_to_jacobian]
    type = MOOSESymmetricRankTwoTensorMaterialPropertyToNEML2
    block = ''
    execute_on = 'INITIAL LINEAR NONLINEAR'
    from_moose = neml2_strain
    to_neml2 = forces/E
  []
  [neml2_index_model_all]
    type = NEML2BatchIndexGenerator
    block = ''
    execute_on = 'INITIAL LINEAR NONLINEAR'
  []
  [neml2_model_all]
    type = NEML2ModelExecutor
    batch_index_generator = neml2_index_model_all
    device = cpu
    execute_on = 'INITIAL LINEAR NONLINEAR'
    gatherers = moose_strain_to_jacobian
    input = neml2_elastic.i
    model = model
    param_gatherers = ''
  []
[]
[Variables]
  [disp_x]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
  [disp_y]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
  [disp_z]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
  [hvar]
    type = MooseVariableScalar
    family = SCALAR
    order = SIXTH
  []
[]
[AuxKernels]
  [cauchy_stress_xx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_xx
    variable = cauchy_stress_xx
  []
  [cauchy_stress_xy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_xy
    variable = cauchy_stress_xy
  []
  [cauchy_stress_xz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_xz
    variable = cauchy_stress_xz
  []
  [cauchy_stress_yx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_yx
    variable = cauchy_stress_yx
  []
  [cauchy_stress_yy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_yy
    variable = cauchy_stress_yy
  []
  [cauchy_stress_yz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_yz
    variable = cauchy_stress_yz
  []
  [cauchy_stress_zx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_zx
    variable = cauchy_stress_zx
  []
  [cauchy_stress_zy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_zy
    variable = cauchy_stress_zy
  []
  [cauchy_stress_zz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = cauchy_stress_zz
    variable = cauchy_stress_zz
  []
  [deformation_gradient_xx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xx
    variable = deformation_gradient_xx
  []
  [deformation_gradient_xy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xy
    variable = deformation_gradient_xy
  []
  [deformation_gradient_xz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xz
    variable = deformation_gradient_xz
  []
  [deformation_gradient_yx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yx
    variable = deformation_gradient_yx
  []
  [deformation_gradient_yy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yy
    variable = deformation_gradient_yy
  []
  [deformation_gradient_yz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yz
    variable = deformation_gradient_yz
  []
  [deformation_gradient_zx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zx
    variable = deformation_gradient_zx
  []
  [deformation_gradient_zy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zy
    variable = deformation_gradient_zy
  []
  [deformation_gradient_zz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zz
    variable = deformation_gradient_zz
  []
[]
[AuxVariables]
  [cauchy_stress_xx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_xy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_xz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_yx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_yy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_yz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_zx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_zy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [cauchy_stress_zz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
[]
[Kernels]
  [TM_all0]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 0
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = false
    stabilize_strain = false
    variable = disp_x
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
  [TM_all1]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 1
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = false
    stabilize_strain = false
    variable = disp_y
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
  [TM_all2]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 2
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = false
    stabilize_strain = false
    variable = disp_z
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
[]
[Materials]
  [cauchy_stress_xx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 0
    outputs = none
    property_name = cauchy_stress_xx
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_xy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 1
    outputs = none
    property_name = cauchy_stress_xy
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_xz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 2
    outputs = none
    property_name = cauchy_stress_xz
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_yx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 0
    outputs = none
    property_name = cauchy_stress_yx
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_yy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 1
    outputs = none
    property_name = cauchy_stress_yy
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_yz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 2
    outputs = none
    property_name = cauchy_stress_yz
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_zx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 0
    outputs = none
    property_name = cauchy_stress_zx
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_zy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 1
    outputs = none
    property_name = cauchy_stress_zy
    rank_two_tensor = cauchy_stress
  []
  [cauchy_stress_zz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 2
    outputs = none
    property_name = cauchy_stress_zz
    rank_two_tensor = cauchy_stress
  []
  [deformation_gradient_xx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 0
    outputs = none
    property_name = deformation_gradient_xx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_xy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 1
    outputs = none
    property_name = deformation_gradient_xy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_xz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 2
    outputs = none
    property_name = deformation_gradient_xz
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 0
    outputs = none
    property_name = deformation_gradient_yx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 1
    outputs = none
    property_name = deformation_gradient_yy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 2
    outputs = none
    property_name = deformation_gradient_yz
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 0
    outputs = none
    property_name = deformation_gradient_zx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 1
    outputs = none
    property_name = deformation_gradient_zy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 2
    outputs = none
    property_name = deformation_gradient_zz
    rank_two_tensor = deformation_gradient
  []
[]
[Executioner]
  type = Transient
  residual_and_jacobian_together = true
  solve_type = 'newton'
  line_search = 'none'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 20
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  [out]
    type = Exodus
  []
[]
[Postprocessors]
  [time]
    type = TimePostprocessor
    execute_on = 'INITIAL TIMESTEP_BEGIN'
  []
  [mCS_xx]
    type = ElementAverageValue
    variable = cauchy_stress_xx
  []
  [mCS_yy]
    type = ElementAverageValue
    variable = cauchy_stress_yy
  []
  [mCS_zz]
    type = ElementAverageValue
    variable = cauchy_stress_zz
  []
  [mCS_xy]
    type = ElementAverageValue
    variable = cauchy_stress_xy
  []
  [mCS_xz]
    type = ElementAverageValue
    variable = cauchy_stress_xz
  []
  [mCS_yx]
    type = ElementAverageValue
    variable = cauchy_stress_yx
  []
  [mCS_yz]
    type = ElementAverageValue
    variable = cauchy_stress_yz
  []
  [mCS_zy]
    type = ElementAverageValue
    variable = cauchy_stress_zy
  []
  [mCS_zx]
    type = ElementAverageValue
    variable = cauchy_stress_zx
  []
[]
(modules/electromagnetics/test/tests/benchmarks/eigenvalue_problems/eigen_base.i)
# Base input file for eigenvalue example tests for multiple waveguide geometries
# RECTANGULAR (Default)
#     Mesh file rectangular.e based on Mesh block:
#         [Mesh]
#           [gmg]
#             type = GeneratedMeshGenerator
#             dim = 2
#             nx = 50
#             ny = 25
#             xmin = 0
#             xmax = 2
#             ymin = 0
#             ymax = 1
#             elem_type = TRI3
#           []
#         []
#     Expected analytic eigenvalue = 12.337005
#     EM Module calculated eigenvalue = 12.363806
# CIRCULAR (Mesh/file=circle.msh, BCs/active='circle eigen_circle')
#     Mesh generated using gmsh
#       radius = 1
#       center = (0, 0)
#     Expected analytic eigenvalue = 5.784025
#     EM Module calculated eigenvalue = 5.824152
# COAXIAL (Mesh/file=coaxial.msh, BCs/active='coaxial eigen_coaxial')
#     Mesh generated using gmsh with coaxial.geo
#       inner_radius = 0.125
#       outer_radius = 0.5
#       center = (0, 0)
#     Expected analytic eigenvalue = 67.108864
#     EM Module calculated eigenvalue = 68.007802
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = rectangular.e
  []
[]
[Variables]
  [potential]
    order = FIRST
    family = LAGRANGE
  []
[]
[AuxVariables]
  [Ex]
    order = CONSTANT
    family = MONOMIAL
  []
  [Ey]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = potential
  []
  [coeff]
    type = CoefReaction
    coefficient = -1
    variable = potential
    extra_vector_tags = 'eigen'
  []
[]
[AuxKernels]
  [Ex_aux]
    type = PotentialToFieldAux
    variable = Ex
    gradient_variable = potential
    sign = negative
    component = x
  []
  [Ey_aux]
    type = PotentialToFieldAux
    variable = Ey
    gradient_variable = potential
    sign = negative
    component = y
  []
[]
[BCs]
  active = 'rectangle eigen_rectangle'
  [rectangle]
    type = DirichletBC
    variable = potential
    boundary = 'left right top bottom'
    value = 0
  []
  [eigen_rectangle]
    type = EigenDirichletBC
    variable = potential
    boundary = 'left right top bottom'
  []
  # alternative BCs for circle case
  [circle]
    type = DirichletBC
    variable = potential
    boundary = 'wall'
    value = 0
  []
  [eigen_circle]
    type = EigenDirichletBC
    variable = potential
    boundary = 'wall'
  []
  # alternative BCs for coaxial case
  [coaxial]
    type = DirichletBC
    variable = potential
    boundary = 'outer inner'
    value = 0
  []
  [eigen_coaxial]
    type = EigenDirichletBC
    variable = potential
    boundary = 'outer inner'
  []
[]
[VectorPostprocessors]
  [eigenvalues]
    type = Eigenvalues
  []
[]
[Executioner]
  type = Eigenvalue
[]
[Outputs]
  csv = true
  exodus = false
  execute_on = FINAL
[]
(modules/contact/test/tests/multiple_contact_pairs/split_sidesets.i)
[GlobalParams]
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = three_hexagons.e
  []
  patch_size = 10
  patch_update_strategy = auto
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    block = '1 2 3'
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '110'
      function = pressure
      factor = 200
    []
  []
[]
[Contact]
  [contact_pressure1]
    formulation = penalty
    model = frictionless
    primary = 3333
    secondary = 1111
    penalty = 2e+03
    normalize_penalty = true
    normal_smoothing_distance = 0.2
    tangential_tolerance = 0.1
  []
  [contact_pressure2]
    formulation = penalty
    model = frictionless
    primary = 4444
    secondary = 2222
    penalty = 2e+03
    normalize_penalty = true
    normal_smoothing_distance = 0.2
    tangential_tolerance = 0.1
  []
  [contact_pressure3]
    formulation = penalty
    model = frictionless
    primary = 6666
    secondary = 5555
    penalty = 2e+03
    normalize_penalty = true
    normal_smoothing_distance = 0.2
    tangential_tolerance = 0.1
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_strain]
    type = ComputePlaneFiniteStrain
    block = '1 2 3'
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'basic'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 1.5
[]
[Outputs]
  hide = 'penetration nodal_area'
  exodus = true
  perf_graph = true
[]
(test/tests/geomsearch/3d_penetration_locator/3d_disconnected_tet.i)
[Mesh]
  [connected_mesh]
    type = FileMeshGenerator
    file = 3d_thermal_contact_tet.e
  []
  [exploded_mesh]
    type = BreakMeshByElementGenerator
    input = connected_mesh
    interface_name = 'interelement'
  []
  construct_side_list_from_node_list = true
  allow_renumbering = false # fix VPP ordering
[]
[Variables]
  active = 'u'
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[AuxVariables]
  [./gap_distance]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./l2]
    type = MassMatrix
    variable = u
    matrix_tags = 'system'
  [../]
[]
[AuxKernels]
  [./distance]
    type = PenetrationAux
    variable = gap_distance
    boundary = 'leftright'
    paired_boundary = 'rightleft'
    search_method = all_proximate_sides
  [../]
[]
[VectorPostprocessors]
  [gap_sampler]
    type = SideValueSampler
    boundary = 'leftright'
    variable = 'gap_distance'
    sort_by = 'id'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  csv = true
[]
(test/tests/preconditioners/vcp/no_condense_test.i)
[Mesh]
  [original_file_mesh]
    type = FileMeshGenerator
    file = non_conform_2blocks.e
  []
  [secondary_side]
    input = original_file_mesh
    type = LowerDBlockFromSidesetGenerator
    sidesets = '10'
    new_block_id = '100'
    new_block_name = 'secondary_side'
  []
  [primary_side]
    input = secondary_side
    type = LowerDBlockFromSidesetGenerator
    sidesets = '20'
    new_block_id = '200'
    new_block_name = 'primary_side'
  []
[]
[Functions]
  [exact_sln]
    type = ParsedFunction
    expression = sin(2*pi*x)*sin(2*pi*y)
  []
  [ffn]
    type = ParsedFunction
    expression = 8*pi*pi*sin(2*pi*x)*sin(2*pi*y)
  []
[]
[Variables]
  [u]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = secondary_side
    use_dual = false
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
  [ffn]
    type = BodyForce
    variable = u
    function = ffn
  []
[]
[Constraints]
  [ced]
    type = EqualValueConstraint
    variable = lm
    secondary_variable = u
    primary_boundary = 20
    primary_subdomain = 200
    secondary_boundary = 10
    secondary_subdomain = 100
  []
[]
[BCs]
  [all]
    type = DirichletBC
    variable = u
    boundary = '30 40'
    value = 0.0
  []
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_sln
    variable = u
    boundary = '50 60'
  []
[]
[Postprocessors]
  [l2_error]
    type = ElementL2Error
    variable = u
    function = exact_sln
    block = '1 2'
    execute_on = 'initial timestep_end'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_view'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = ' lu       NONZERO               1e-12'
  l_max_its = 100
  nl_rel_tol = 1e-6
[]
[Outputs]
  csv = true
[]
(modules/xfem/test/tests/solid_mechanics_basic/edge_crack_3d_domain.i)
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  volumetric_locking_correction = true
[]
[XFEM]
  geometric_cut_userobjects = 'cut_mesh'
  qrule = volfrac
  output_cut_plane = true
[]
[Mesh]
  [read_in_cutter_mesh]
    type = FileMeshGenerator
    file = mesh_edge_crack.xda
    save_with_name = mesh_cutter
  []
  [FEM_mesh]
    type = GeneratedMeshGenerator
    dim = 3
    nx = 5
    ny = 5
    nz = 2
    xmin = 0.0
    xmax = 1.0
    ymin = 0.0
    ymax = 1.0
    zmin = 0.0
    zmax = 0.2
    elem_type = HEX8
  []
  final_generator = FEM_mesh
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    strain = FINITE
    add_variables = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
  []
[]
[BCs]
  [top_x]
    type = FunctionNeumannBC
    boundary = top
    variable = disp_x
    function = top_trac_x
  []
  [top_y]
    type = FunctionNeumannBC
    boundary = top
    variable = disp_y
    function = top_trac_y
  []
  [bottom_x]
    type = DirichletBC
    boundary = bottom
    variable = disp_x
    value = 0.0
  []
  [bottom_y]
    type = DirichletBC
    boundary = bottom
    variable = disp_y
    value = 0.0
  []
  [bottom_z]
    type = DirichletBC
    boundary = bottom
    variable = disp_z
    value = 0.0
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 207000
    poissons_ratio = 0.3
    block = 0
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = 0
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = '201                hypre    boomeramg      8'
  line_search = 'none'
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  # controls for linear iterations
  l_max_its = 100
  l_tol = 1e-2
  # controls for nonlinear iterations
  nl_max_its = 15
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-10
  # time control
  start_time = 0.0
  dt = 1.0
  end_time = 4.0
  max_xfem_update = 1
[]
[Outputs]
  execute_on = 'timestep_end'
  exodus = true
  [console]
    type = Console
    output_linear = true
  []
[]
(modules/solid_mechanics/test/tests/shell/static/tank_shell.i)
# Test for distributed load on shell (pressure)
# A long cylindrical tank (3m) with a wall thickness of t=0.03 m and a radius of 0.5m is subjected to an internal presure of p=40MPa.
# The lower part of the cylinder is constrained in the x-y-z directions
# Theorically, assuming a thin_walled cylinder t/r <0.1, the hoop stress is sigma_t=p*r/t
# Therefore, in-plane force in the circumference of the cylinder is F=sigma_t*t= p*r=0.5*40=20 MN (independent of material properties of the shell)
# Analytical solution for the radial displacement : u=p*r^2/(E*t)=0.00167 m
# We check the axial_force_1 at the upper part of the cylinder (far from the lower boundary to avoid boundary effects)
# The numerical modeling results in axial_force_1 =19.882 MPa (0.6% error) and radial displacement u=0.00165 (1.1% error)
[Mesh]
  [gmg]
    type = FileMeshGenerator
    file = tank_shell.msh
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[AuxVariables]
  [axial_force_1]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [axial_force_1]
    type = ShellResultantsAux
    variable = axial_force_1
    stress_resultant = axial_force_1
    thickness = 0.03
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'lower_circle'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'lower_circle'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'lower_circle'
    value = 0.0
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  # best overall
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-13
  dt = 1
  dtmin = 1
  end_time = 1
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
  [load_x]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_x
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
  [load_y]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_y
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
  [load_z]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_z
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 2e5
    poissons_ratio = 0.3
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.03
    reference_first_local_direction = ' 0 0 1'
    through_thickness_order = SECOND
  []
  [stress]
    type = ADComputeShellStress
    through_thickness_order = SECOND
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/fvics/file_ic/file_restart_linearfv.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = restart_from.e
    use_for_exodus_restart = true
  []
[]
[Problem]
  linear_sys_names = "u_sys"
[]
[Variables]
  [u]
    type = MooseLinearVariableFVReal
    initial_from_file_var = u
    solver_sys = "u_sys"
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_radiation_test.i)
#
# This test replicates the legacy heat transfter test
# gap_heat_transfer_radiation/gap_heat_transfer_radiation_test.i
# The flux post processors give 3.753945e+01
#
[Mesh]
  [file]
    type = FileMeshGenerator
    file = gap_heat_transfer_radiation_test.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '200'
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '3'
    new_block_id = '300'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '200 200'
  []
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 100
    scaling = 1e-8
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
    scaling = 1e-1
  []
[]
[Kernels]
  [heat]
    type = HeatConduction
    variable = temp
    block = '1 2'
  []
[]
[BCs]
  [temp_far_left]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = temp
  []
  [temp_far_right]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  []
[]
[UserObjects]
  [radiative]
    type = GapFluxModelRadiative
    secondary_emissivity = 0.5
    primary_emissivity = 0.5
    temperature = temp
    boundary = 3
  []
  [simple]
    type = GapFluxModelSimple
    k = 0.09187557
    temperature = temp
    boundary = 3
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 3
    primary_subdomain = 300
    secondary_boundary = 2
    secondary_subdomain = 200
    gap_flux_models = 'simple radiative'
  []
[]
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 10000000.0
  []
  [density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '1.0'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  end_time = 1.0
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
    execute_on = 'initial timestep_end'
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
    execute_on = 'initial timestep_end'
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
[]
[Outputs]
  exodus = true
[]
(modules/reactor/test/tests/meshgenerators/cartesian_concentric_circle_adaptive_boundary_generator/square_2d.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = square_in.e
  []
  [gen]
    type = CartesianConcentricCircleAdaptiveBoundaryMeshGenerator
    num_sectors_per_side = '4 4 4 4'
    background_intervals = 2
    square_size = 10.0
    sides_to_adapt = 0
    meshes_to_adapt_to = 'fmg'
  []
[]
(test/tests/fvkernels/mms/skewness-correction/diffusion/skewed.i)
a=1.1
diff=1.1
[Mesh]
  [./gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  [../]
[]
[Variables]
  [./v]
    initial_condition = 1
    type = MooseVariableFVReal
    face_interp_method = 'skewness-corrected'
  [../]
[]
[FVKernels]
  [diff_v]
    type = FVDiffusion
    variable = v
    coeff = ${diff}
  []
  [body_v]
    type = FVBodyForce
    variable = v
    function = 'forcing'
  []
[]
[FVBCs]
  [exact]
    type = FVFunctionDirichletBC
    boundary = 'left right top bottom'
    function = 'exact'
    variable = v
  []
[]
[Functions]
  [exact]
    type = ParsedFunction
    expression = 'sin(x)*cos(y)'
  []
  [forcing]
    type = ParsedFunction
    expression = '2*diff*sin(x)*cos(y)'
    symbol_names = 'a diff'
    symbol_values = '${a} ${diff}'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  csv = true
[]
[Postprocessors]
  [./error]
    type = ElementL2Error
    variable = v
    function = exact
    outputs = 'console csv'
  [../]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
  []
[]
(modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insfv.i)
mu=1
rho=1
advected_interp_method='average'
velocity_interp_method='rc'
[GlobalParams]
  rhie_chow_user_object = 'rc'
  advected_interp_method = ${advected_interp_method}
  velocity_interp_method = ${velocity_interp_method}
[]
[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolator
    u = u
    v = v
    pressure = pressure
  []
[]
[Mesh]
  inactive = 'mesh internal_boundary_bot internal_boundary_top'
  [mesh]
    type = CartesianMeshGenerator
    dim = 2
    dx = '1'
    dy = '1 1 1'
    ix = '5'
    iy = '5 5 5'
    subdomain_id = '1
                    2
                    3'
  []
  [internal_boundary_bot]
    type = SideSetsBetweenSubdomainsGenerator
    input = mesh
    new_boundary = 'internal_bot'
    primary_block = 1
    paired_block = 2
  []
  [internal_boundary_top]
    type = SideSetsBetweenSubdomainsGenerator
    input = internal_boundary_bot
    new_boundary = 'internal_top'
    primary_block = 2
    paired_block = 3
  []
  [diverging_mesh]
    type = FileMeshGenerator
    file = 'expansion_quad.e'
  []
[]
[Variables]
  [u]
    type = INSFVVelocityVariable
    initial_condition = 0
  []
  [v]
    type = INSFVVelocityVariable
    initial_condition = 1
  []
  [pressure]
    type = INSFVPressureVariable
  []
  [temperature]
    type = INSFVEnergyVariable
  []
[]
[AuxVariables]
  [advected_density]
    type = MooseVariableFVReal
    initial_condition = ${rho}
  []
[]
[FVKernels]
  [mass]
    type = INSFVMassAdvection
    variable = pressure
    rho = ${rho}
  []
  [u_advection]
    type = INSFVMomentumAdvection
    variable = u
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion
    variable = u
    mu = ${mu}
    force_boundary_execution = true
    momentum_component = 'x'
  []
  [u_pressure]
    type = INSFVMomentumPressure
    variable = u
    momentum_component = 'x'
    pressure = pressure
  []
  [v_advection]
    type = INSFVMomentumAdvection
    variable = v
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion
    variable = v
    mu = ${mu}
    force_boundary_execution = true
    momentum_component = 'y'
  []
  [v_pressure]
    type = INSFVMomentumPressure
    variable = v
    momentum_component = 'y'
    pressure = pressure
  []
  [temp_advection]
    type = INSFVEnergyAdvection
    variable = temperature
    advected_interp_method = 'upwind'
  []
  [temp_source]
    type = FVBodyForce
    variable = temperature
    function = 10
    block = 1
  []
[]
[FVBCs]
  [inlet-u]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = u
    functor = 0
  []
  [inlet-v]
    type = INSFVInletVelocityBC
    boundary = 'bottom'
    variable = v
    functor = 1
  []
  [noslip-u]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = u
    function = 0
  []
  [noslip-v]
    type = INSFVNoSlipWallBC
    boundary = 'right'
    variable = v
    function = 0
  []
  [axis-u]
    type = INSFVSymmetryVelocityBC
    boundary = 'left'
    variable = u
    u = u
    v = v
    mu = ${mu}
    momentum_component = x
  []
  [axis-v]
    type = INSFVSymmetryVelocityBC
    boundary = 'left'
    variable = v
    u = u
    v = v
    mu = ${mu}
    momentum_component = y
  []
  [axis-p]
    type = INSFVSymmetryPressureBC
    boundary = 'left'
    variable = pressure
  []
  [outlet_p]
    type = INSFVOutletPressureBC
    boundary = 'top'
    variable = pressure
    function = 0
  []
  [inlet_temp]
    type = FVNeumannBC
    boundary = 'bottom'
    variable = temperature
    value = 300
  []
[]
[FunctorMaterials]
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial
    temperature = 'temperature'
    rho = ${rho}
  []
  [advected_material_property]
    type = ADGenericFunctorMaterial
    prop_names = 'advected_rho cp'
    prop_values ='${rho} 1'
  []
  [vel_functor]
    type = ADGenericVectorFunctorMaterial
    prop_names = 'velocity'
    prop_values = 'u v 0'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_pc_type -sub_pc_factor_shift_type'
  petsc_options_value = 'asm      200                lu           NONZERO'
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Postprocessors]
  [pdrop_total]
    type = PressureDrop
    pressure = pressure
    upstream_boundary = 'bottom'
    downstream_boundary = 'top'
    boundary = 'top bottom'
  []
  [pdrop_mid1]
    type = PressureDrop
    pressure = pressure
    upstream_boundary = 'bottom'
    downstream_boundary = 'internal_bot'
    boundary = 'bottom internal_bot'
  []
  [pdrop_mid2]
    type = PressureDrop
    pressure = pressure
    upstream_boundary = 'internal_bot'
    downstream_boundary = 'internal_top'
    boundary = 'internal_top internal_bot'
  []
  [pdrop_mid3]
    type = PressureDrop
    pressure = pressure
    upstream_boundary = 'internal_top'
    downstream_boundary = 'top'
    boundary = 'top internal_top'
  []
  [sum_drops]
    type = ParsedPostprocessor
    expression = 'pdrop_mid1 + pdrop_mid2 + pdrop_mid3'
    pp_names = 'pdrop_mid1 pdrop_mid2 pdrop_mid3'
  []
  [p_upstream]
    type = SideAverageValue
    variable = pressure
    boundary = 'bottom'
  []
  [p_downstream]
    type = SideAverageValue
    variable = pressure
    boundary = 'top'
  []
[]
[Outputs]
  csv = true
[]
(test/tests/meshgenerators/transform_generator/rotate_and_scale.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
  []
  [./rotate]
    type = TransformGenerator
    input = fmg
    transform = ROTATE
    vector_value = '0 90 0'
  []
  [./scale]
    type = TransformGenerator
    input = rotate
    transform = SCALE
    vector_value ='1e2 1e2 1e2'
  []
[]
 [Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = 1
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = 2
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(modules/reactor/test/tests/meshgenerators/hexagon_concentric_circle_adaptive_boundary_generator/hex_2d.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = hex_in.e
  []
  [gen]
    type = HexagonConcentricCircleAdaptiveBoundaryMeshGenerator
    num_sectors_per_side = '4 4 4 4 4 4'
    background_intervals = 2
    hexagon_size = 5.0
    sides_to_adapt = 0
    meshes_to_adapt_to = 'fmg'
  []
[]
(test/tests/mortar/continuity-2d-non-conforming/soln-continuity.i)
[Mesh]
  second_order = true
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
    order = SECOND
  []
  [lambda]
    block = '10'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/Error_wrong_bonding_blockID.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    bonding_block_pairs = '3 1'
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/mesh/3D_sideset.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = sphere.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty_action.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = iron.e
  []
  patch_update_strategy = auto
  patch_size = 20
  allow_renumbering = false
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [penalty_normal_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [penalty_frictional_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [accumulated_slip_one]
    order = FIRST
    family = LAGRANGE
  []
  [tangential_vel_one]
    order = FIRST
    family = LAGRANGE
  []
  [real_weighted_gap]
    order = FIRST
    family = LAGRANGE
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
  [von_mises]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 2. 8.'
    y = '0. -1.0 -1.0'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 8.'
    y = '0. 8.'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    save_in = 'saved_x saved_y'
    block = '1 2'
    strain = FINITE
  []
[]
[AuxKernels]
  [penalty_normal_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = penalty_friction_object_contact_block
    contact_quantity = normal_pressure
  []
  [penalty_frictional_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = penalty_friction_object_contact_block
    contact_quantity = tangential_pressure_one
  []
  [penalty_accumulated_slip_auxk]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = penalty_friction_object_contact_block
    contact_quantity = accumulated_slip_one
  []
  [penalty_tangential_vel_auxk]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = penalty_friction_object_contact_block
    contact_quantity = tangential_velocity_one
  []
  [real_weighted_gap_auxk]
    type = MortarUserObjectAux
    variable = real_weighted_gap
    user_object = penalty_friction_object_contact_block
    contact_quantity = normal_gap
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [von_mises_kernel]
    #Calculates the von mises stress and assigns it to von_mises
    type = RankTwoScalarAux
    variable = von_mises
    rank_two_tensor = stress
    execute_on = timestep_end
    scalar_type = VonMisesStress
    block = '1 2'
  []
[]
[Contact]
  [contact_block]
    primary = 20
    secondary = 10
    friction_coefficient = 0.1
    model = coulomb
    formulation = mortar_penalty
    penalty = 1e5
    penalty_friction = 1e4
    use_dual = false
  []
[]
[VectorPostprocessors]
  [penalty_normal_pressure]
    type = NodalValueSampler
    variable = penalty_normal_pressure
    boundary = 10
    sort_by = id
  []
[]
[Postprocessors]
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 30
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 30
  []
[]
[BCs]
  [bot_x_disp]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
    preset = false
  []
  [bot_y_disp]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
    preset = false
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = disp_ramp_vert
    preset = false
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = '30'
    function = disp_ramp_horz
    preset = false
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 6896
    poissons_ratio = 0.32
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '2'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 689.6
    poissons_ratio = 0.32
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
  petsc_options_value = 'lu     superlu_dist'
  line_search = 'none'
  nl_abs_tol = 1e-7
  nl_rel_tol = 1e-7
  l_tol = 1e-6
  l_max_its = 50
  nl_max_its = 30
  start_time = 0.0
  end_time = 6.5 # 6.5
  dt = 0.0125
  dtmin = 1e-5
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = true
  [chkfile]
    type = CSV
    start_time = 0.0
    execute_vector_postprocessors_on = FINAL
  []
  [console]
    type = Console
    max_rows = 5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
(modules/contact/test/tests/sliding_block/in_and_out/frictionless_lm.i)
[Mesh]
  patch_size = 80
  [file]
    type = FileMeshGenerator
    file = sliding_elastic_blocks_2d.e
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = false
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1 2'
  []
[]
[BCs]
  [left_x]
    type = DirichletBC
    variable = disp_x
    boundary = 1
    value = 0.0
  []
  [left_y]
    type = DirichletBC
    variable = disp_y
    boundary = 1
    value = 0.0
  []
  [right_x]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = horizontal_movement
  []
  [right_y]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = vertical_movement
  []
[]
[Materials]
  [left]
    type = ComputeIsotropicElasticityTensor
    block = '1 2'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
    constant_on = SUBDOMAIN
  []
  [stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
  petsc_options_iname = '-pc_type -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       1e-5          NONZERO               1e-15'
  end_time = 15
  dt = 0.1
  dtmin = 0.01
  l_max_its = 30
  nl_max_its = 20
  line_search = 'none'
  timestep_tolerance = 1e-6
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  sync_times = '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15'
  [out]
    type = Exodus
    sync_only = true
  []
  [dof]
    execute_on = 'initial'
    type = DOFMap
  []
  [csv]
    type = CSV
    execute_on = 'nonlinear timestep_end'
  []
[]
[Functions]
  [vertical_movement]
    type = ParsedFunction
    expression = -t
  []
  [horizontal_movement]
    type = ParsedFunction
    expression = -0.04*sin(4*t)+0.02
  []
[]
[Contact]
  [contact]
    secondary = 3
    primary = 2
    model = frictionless
    formulation = mortar
  []
[]
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [lin]
    type = NumLinearIterations
  []
  [contact]
    type = ContactDOFSetSize
    variable = contact_normal_lm
    subdomain = '30'
    execute_on = 'nonlinear timestep_end'
  []
[]
(test/tests/meshgenerators/file_mesh_generator/exact_discontinuous_iga.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = test_quadratic.e
    discontinuous_spline_extraction = true
  []
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = 'x'
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [./time]
    type = TimeDerivative
    variable = u
    block = 0
  [../]
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[Executioner]
  type = Transient
  num_steps = 1
  solve_type = NEWTON
  dt = 1
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sidesets_between_subdomains_generator/between.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = twoblocks.e
  []
  [./extrude]
    type = SideSetsBetweenSubdomainsGenerator
    input = fmg
    primary_block = 'left'
    paired_block = 'right'
    new_boundary = 'in_between'
  [../]
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/small_patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
               '
             '   0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = false
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = UpdatedLagrangianStressDivergence
    variable = disp_x
    component = 0
  []
  [sdy]
    type = UpdatedLagrangianStressDivergence
    variable = disp_y
    component = 1
  []
  [sdz]
    type = UpdatedLagrangianStressDivergence
    variable = disp_z
    component = 2
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = 2D_2blocks.e
  [../]
  [./gpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    blocks_to_pd = 3
  [../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[MortarGapHeatTransfer]
  [mortar_heat_transfer]
   temperature = temp
   primary_emissivity = 1.0
   secondary_emissivity = 1.0
   boundary = 100
   use_displaced_mesh = true
   gap_conductivity = 0.02
   primary_boundary = 100
   secondary_boundary = 101
   gap_flux_options = 'CONDUCTION RADIATION'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  csv = true
  [exodus]
    type = Exodus
    show = 'temp'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar_displaced.i)
[Mesh]
  displacements = 'disp_x disp_y'
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[Materials]
  [./left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 1000
    specific_heat = 1
  [../]
  [./right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 500
    specific_heat = 1
  [../]
[]
[Kernels]
  [./hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  [../]
  [./hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  [../]
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[Constraints]
  [./ced]
    type = GapConductanceConstraint
    variable = lm
    secondary_variable = temp
    k = 100
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    displacements = 'disp_x disp_y'
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 1
  [../]
  [./right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  [../]
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
[]
[Outputs]
  exodus = true
  show = 'temp disp_x disp_y'
  [dof]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(tutorials/shield_multiphysics/inputs/step05_auxiliary_variables/step5.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
[]
[AuxVariables]
  [T_fluid]
    family = MONOMIAL
    order = CONSTANT
    block = 'water'
    initial_condition = 300
  []
  [heat_flux_x]
    family = MONOMIAL
    order = CONSTANT
    block = 'concrete_hd concrete'
  []
  [heat_flux_y]
    family = MONOMIAL
    order = CONSTANT
    block = 'concrete_hd concrete'
  []
  [heat_flux_z]
    family = MONOMIAL
    order = CONSTANT
    block = 'concrete_hd concrete'
  []
[]
[AuxKernels]
  [diff_flux_x]
    type = DiffusionFluxAux
    variable = heat_flux_x
    diffusion_variable = T
    diffusivity = 'thermal_conductivity'
    component = 'x'
  []
  [diff_flux_y]
    type = DiffusionFluxAux
    variable = heat_flux_y
    diffusion_variable = T
    diffusivity = 'thermal_conductivity'
    component = 'y'
  []
  [diff_flux_z]
    type = DiffusionFluxAux
    variable = heat_flux_z
    diffusion_variable = T
    diffusivity = 'thermal_conductivity'
    component = 'z'
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Steady # Steady state problem
  solve_type = NEWTON # Perform a Newton solve, uses AD to compute Jacobian terms
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri_refine.i)
[Mesh]
  [hex_in]
    type = FileMeshGenerator
    file = gold/abtr_mesh.e
  []
  [tmg]
    type = PeripheralTriangleMeshGenerator
    input = hex_in
    peripheral_ring_radius = 150
    peripheral_ring_num_segments = 50
    desired_area = 50
    peripheral_ring_block_name = 'periphery'
  []
[]
[Postprocessors]
  [periphery_area]
    type = VolumePostprocessor
    block = periphery
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
  file_base = abtr_tri_refine
[]
(modules/peridynamics/test/tests/mesh/2D_sidesets_partial_boundary.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = disk.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(test/tests/fvkernels/mms/skewness-correction/two_term_extrapol/advection-outflow.i)
diff=1
a=1
[GlobalParams]
  advected_interp_method = 'average'
[]
[Mesh]
  [./gen_mesh]
    type = FileMeshGenerator
    file = skewed.msh
  [../]
[]
[Variables]
  [./v]
    type = MooseVariableFVReal
    face_interp_method = 'skewness-corrected'
  [../]
[]
[FVKernels]
  [./advection]
    type = FVAdvection
    variable = v
    velocity = '${a} 0 0'
  [../]
  [./diffusion]
    type = FVDiffusion
    variable = v
    coeff = coeff
  [../]
  [./body]
    type = FVBodyForce
    variable = v
    function = 'forcing'
  [../]
[]
[FVBCs]
  [left]
    type = FVFunctionDirichletBC
    boundary = 'left'
    function = 'exact'
    variable = v
  []
  [top]
    type = FVNeumannBC
    boundary = 'top'
    value = 0
    variable = v
  []
  [bottom]
    type = FVNeumannBC
    boundary = 'bottom'
    value = 0
    variable = v
  []
  [right]
    type = FVConstantScalarOutflowBC
    variable = v
    velocity = '${a} 0 0'
    boundary = 'right'
  []
[]
[Materials]
  [diff]
    type = ADGenericFunctorMaterial
    prop_names = 'coeff'
    prop_values = '${diff}'
  []
[]
[Functions]
  [exact]
    type = ParsedFunction
    expression = 'cos(x)'
  []
  [forcing]
    type = ParsedFunction
    expression = 'cos(x) - sin(x)'
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_hypre_type -snes_linesearch_minlambda'
  petsc_options_value = 'hypre boomeramg 1e-9'
[]
[Outputs]
  csv = true
[]
[Postprocessors]
  [./error]
    type = ElementL2Error
    variable = v
    function = exact
    outputs = 'console csv'
    execute_on = 'timestep_end'
  [../]
  [h]
    type = AverageElementSize
    outputs = 'console csv'
    execute_on = 'timestep_end'
  []
[]
(test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator2.i)
[Mesh]
  [./fmg_left]
    type = FileMeshGenerator
    file = left.e
  []
  [./fmg_center]
    type = FileMeshGenerator
    file = center.e
  []
  [./fmg_right]
    type = FileMeshGenerator
    file = right.e
  []
  [./smg]
    type = StitchMeshGenerator
    inputs = 'fmg_left fmg_center fmg_right'
    clear_stitched_boundary_ids = true
    stitch_boundaries_pairs = 'right left;
                               right left'
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/gap-conductance-2d-non-conforming/gap-conductance.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  []
  [secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  []
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = '10'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = '-4 + x^2 + y^2'
  []
  [exact_soln]
    type = ParsedFunction
    expression = 'x^2 + y^2'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = GapHeatConductanceTest
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  []
[]
[Materials]
  [constant]
    type = ADGenericConstantMaterial
    prop_names = 'gap_conductance'
    prop_values = '.03'
    block = '1 2'
  []
  [ssm]
    type = SpatialStatefulMaterial
    block = '1 2'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type'
  petsc_options_value = 'lu       basic'
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact_constant_conductance.i)
[Mesh]
  [fmesh]
    type = FileMeshGenerator
    file = meshed_gap.e
  []
  [block0]
    type = SubdomainBoundingBoxGenerator
    input = fmesh
    bottom_left = '.5 -.5 0'
    top_right = '.7 .5 0'
    block_id = 4
  []
[]
[Variables]
  [./temp]
    block = '1 3'
    initial_condition = 1.0
  [../]
[]
[Kernels]
  [./hc]
    type = HeatConduction
    variable = temp
    block = '1 3'
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = temp
    boundary = 1
    value = 1
  [../]
  [./right]
    type = DirichletBC
    variable = temp
    boundary = 4
    value = 2
  [../]
[]
[ThermalContact]
  [./gap_conductance]
    type = GapHeatTransfer
    variable = temp
    primary = 2
    secondary = 3
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductance = 2.5
  [../]
[]
[Materials]
  [./hcm]
    type = HeatConductionMaterial
    block = '1 3'
    temp = temp
    thermal_conductivity = 1
  [../]
[]
[Problem]
  type = FEProblem
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  [./out]
    type = Exodus
  [../]
[]
(test/tests/mesh/splitting/extrude_from_split.i)
[Mesh]
  [read]
    type = FileMeshGenerator
    file = 'foo.cpa.gz'
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = read
    heights = '1 2 3'
    num_layers = '1 2 3'
    direction = '0 0 1'
  []
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = u
    boundary = 'left'
    value = 0
  []
  [right]
    type = DirichletBC
    variable = u
    boundary = 'right'
    value = 1
  []
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
[AuxVariables]
  [pid]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [pid_aux]
    type = ProcessorIDAux
    variable = pid
    execute_on = 'INITIAL'
  []
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i)
#
# 2-D RZ Gap Heat Transfer Test without mechanics
#
# This test exercises 1-D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of two element blocks containing one element each.  Each
#   element is a unit cube.  They sit next to one another with a unit between them.
#
# The conductivity of both blocks is set very large to achieve a uniform temperature
#  across each block. The temperature of the far left boundary
#  is ramped from 100 to 200 over one time unit, and then held fixed for an additional
#  time unit.  The temperature of the far right boundary is held fixed at 100.
#
# A simple analytical solution is possible for the heat flux between the blocks, or cylinders in the case of RZ.:
#
#  Flux = (T_left - T_right) * (gapK/(r*ln(r2/r1)))
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(ln(r2/r1))
# 2*pi*1*1*100/(ln(2/1)) = 906.5 watts
#
# For comparison, see results from the flux post processors.
#
# As a second test, use the rectilinear (parallel plate) form of the gap heat transfer.
#
#  Flux = (T_left - T_right) * (gapK/gapL)
#
# For gapK = 1 (default value)
#
# The integrated heat flux across the gap at time 2 is then:
#
# 2*pi*h*k*delta_T/(1)
# 2*pi*1*1*100/(1) = 628.3 watts
#
# For comparison, see results from the flux post processors.
#
[Mesh]
  active = 'file'
  [file]
    type = FileMeshGenerator
    file = gap_heat_transfer_htonly_rz_test.e
  []
  [rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '90 0 0'
    input = file
  []
  rz_coord_axis = Y # this is modified through CLI args to test Z-R as opposed to R-Z
  coord_type = RZ
[]
[Functions]
  [./ramp]
    type = PiecewiseLinear
    x = '0   1   2'
    y = '100 200 200'
  [../]
[]
[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
  [../]
  [./thermal_contact2]
    type = GapHeatTransfer
    variable = temp2
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_geometry_type = PLATE
    appended_property_name = 2
  [../]
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    initial_condition = 100
  [../]
  [./temp2]
    order = FIRST
    family = LAGRANGE
    initial_condition = 100
  [../]
[]
[AuxVariables]
  [./gap_cond]
    order = CONSTANT
    family = MONOMIAL
  [../]
  [./gap_cond2]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./heat]
    type = HeatConduction
    variable = temp
  [../]
  [./heat2]
    type = HeatConduction
    variable = temp2
  [../]
[]
[BCs]
  [./temp_far_left]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = ramp
  [../]
  [./temp_far_right]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  [../]
  [./temp_far_left2]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp2
    function = ramp
  [../]
  [./temp_far_right2]
    type = DirichletBC
    boundary = 4
    variable = temp2
    value = 100
  [../]
[]
[AuxKernels]
  [./conductance]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_cond
    boundary = 2
  [../]
  [./conductance2]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_cond2
    boundary = 2
  [../]
[]
[Materials]
  [./heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 1e6
  [../]
  [./density]
    type = GenericConstantMaterial
    block = '1 2'
    prop_names = 'density'
    prop_values = '1.0'
  [../]
[]
[Executioner]
  type = Transient
#  petsc_options = '-snes_mf_operator -ksp_monitor -snes_ksp_ew'
  #Preconditioned JFNK (default)
  solve_type = 'PJFNK'
#  petsc_options_iname = '-snes_type -snes_ls -snes_linesearch_type -ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
#  petsc_options_value = 'ls         basic    basic                    201                hypre    boomeramg      4'
#  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
#  petsc_options_value = '201                hypre    boomeramg      4'
  nl_abs_tol = 1e-3
  nl_rel_tol = 1e-8
  l_tol = 1e-6
  l_max_its = 100
  start_time = 0.0
  dt = 1e-1
  dtmin = 1e-1
  end_time = 2.0
[]
[Postprocessors]
  [./temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
    execute_on = 'initial timestep_end'
  [../]
  [./flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  [../]
  [./flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  [../]
  [./temp_left2]
    type = SideAverageValue
    boundary = 2
    variable = temp2
    execute_on = 'initial timestep_end'
  [../]
  [./temp_right2]
    type = SideAverageValue
    boundary = 3
    variable = temp2
    execute_on = 'initial timestep_end'
  [../]
  [./flux_left2]
    type = SideDiffusiveFluxIntegral
    variable = temp2
    boundary = 2
    diffusivity = thermal_conductivity
  [../]
  [./flux_right2]
    type = SideDiffusiveFluxIntegral
    variable = temp2
    boundary = 3
    diffusivity = thermal_conductivity
  [../]
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_3d.i)
# 3D test with just mixed stress strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = NINTH
  []
[]
[AuxVariables]
  [pk1_stress_xx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zx]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zy]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xz]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yz]
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zx]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zy]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yz]
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zz]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [pk1_stress_xx]
    type = RankTwoAux
    variable = pk1_stress_xx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [pk1_stress_yx]
    type = RankTwoAux
    variable = pk1_stress_yx
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [pk1_stress_zx]
    type = RankTwoAux
    variable = pk1_stress_zx
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [pk1_stress_xy]
    type = RankTwoAux
    variable = pk1_stress_xy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [pk1_stress_yy]
    type = RankTwoAux
    variable = pk1_stress_yy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [pk1_stress_zy]
    type = RankTwoAux
    variable = pk1_stress_zy
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [pk1_stress_xz]
    type = RankTwoAux
    variable = pk1_stress_xz
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [pk1_stress_yz]
    type = RankTwoAux
    variable = pk1_stress_yz
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [pk1_stress_zz]
    type = RankTwoAux
    variable = pk1_stress_zz
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [deformation_gradient_xx]
    type = RankTwoAux
    variable = deformation_gradient_xx
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [deformation_gradient_yx]
    type = RankTwoAux
    variable = deformation_gradient_yx
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [deformation_gradient_zx]
    type = RankTwoAux
    variable = deformation_gradient_zx
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [deformation_gradient_xy]
    type = RankTwoAux
    variable = deformation_gradient_xy
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [deformation_gradient_yy]
    type = RankTwoAux
    variable = deformation_gradient_yy
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [deformation_gradient_zy]
    type = RankTwoAux
    variable = deformation_gradient_zy
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [deformation_gradient_xz]
    type = RankTwoAux
    variable = deformation_gradient_xz
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [deformation_gradient_yz]
    type = RankTwoAux
    variable = deformation_gradient_yz
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [deformation_gradient_zz]
    type = RankTwoAux
    variable = deformation_gradient_zz
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    constraint_types = 'stress strain strain strain stress strain strain strain strain'
    targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    constraint_types = 'stress strain strain strain stress strain strain strain strain'
    targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    constraint_types = 'stress strain strain strain stress strain strain strain strain'
    targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
    scalar_variable = hvar
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '120.0*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '65*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain32]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain31]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
    macro_gradient = hvar
    constraint_types = 'stress strain strain strain stress strain strain strain strain'
    targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 20
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  file_base = 3d
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/large_patch.i)
[Mesh]
  [base]
    type = FileMeshGenerator
    file = 'patch.xda'
  []
  [sets]
    input = base
    type = SideSetsFromPointsGenerator
    new_boundary = 'left right bottom top back front'
    points = '    0 0.5 0.5
                  1 0.5 0.5
                  0.5 0.0 0.5
               '
             '   0.5 1.0 0.5
                  0.5 0.5 0.0
                  0.5 0.5 1.0'
  []
[]
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
[]
[Kernels]
  [sdx]
    type = TotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    large_kinematics = true
  []
  [sdy]
    type = TotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    large_kinematics = true
  []
  [sdz]
    type = TotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    large_kinematics = true
  []
[]
[AuxVariables]
  [strain_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_xz]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_zz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yz]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xz]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [stress_zz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [stress_xz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [stress_yz]
    type = RankTwoAux
    rank_two_tensor = cauchy_stress
    variable = stress_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xx]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
  []
  [strain_yy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
  []
  [strain_zz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_zz
    index_i = 2
    index_j = 2
    execute_on = timestep_end
  []
  [strain_xy]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
  []
  [strain_xz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_xz
    index_i = 0
    index_j = 2
    execute_on = timestep_end
  []
  [strain_yz]
    type = RankTwoAux
    rank_two_tensor = mechanical_strain
    variable = strain_yz
    index_i = 1
    index_j = 2
    execute_on = timestep_end
  []
[]
[BCs]
  [left]
    type = DirichletBC
    preset = true
    variable = disp_x
    boundary = left
    value = 0.0
  []
  [bottom]
    type = DirichletBC
    preset = true
    variable = disp_y
    boundary = bottom
    value = 0.0
  []
  [back]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = back
    value = 0.0
  []
  [front]
    type = DirichletBC
    preset = true
    variable = disp_z
    boundary = front
    value = 0.1
  []
[]
[Materials]
  [elastic_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 1000.0
    poissons_ratio = 0.25
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
    large_kinematics = true
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    large_kinematics = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  dt = 1
  solve_type = 'newton'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-10
  end_time = 1
  dtmin = 1.0
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_local_stress.i)
# test for displacement of pinched cylinder with user-defined local vectors
# everything is similar to the pinch_cylinder_symm.i, except the local coordinates.
# in the original test the first local axis is '0 0 1'
# in this test, the first local vector is defined by the user : first_local_vector_ref='1 -1 0'
# the given vector by the user is projected on the shell elements
# The rotational BCs are switched in order to get same results.
# Moreover, axiliary variables are added in this test to visualize local coordinates
# The local stresses, forces and bending moments are also calcualted
# The local stress_22 should be zero for all elements
[Mesh]
  [mesh]
    type = FileMeshGenerator
    file = cyl_sym_10x10.e
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'CD AD'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'CD BC'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'AB'
    value = 0.0
  []
  [simply_support_rot_x]
    type = DirichletBC
    variable = rot_x
    boundary = 'AB'
    value = 0.0
  []
  [simply_support_rot_y]
    type = DirichletBC
    variable = rot_y
    boundary = 'AD BC'
    value = 0.0
  []
[]
[DiracKernels]
  [point]
    type = ConstantPointSource
    variable = disp_x
    point = '1 0 1'
    value = -2.5 # P = 10
  []
[]
[AuxVariables]
  [stress_00]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_01]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_02]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [force_1]
    order = CONSTANT
    family = MONOMIAL
  []
  [force_2]
    order = CONSTANT
    family = MONOMIAL
  []
  [moment_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [moment_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [moment_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [shear_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [shear_13]
    order = CONSTANT
    family = MONOMIAL
  []
  [shear_23]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [first_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [second_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_x]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_y]
    order = CONSTANT
    family = MONOMIAL
  []
  [normal_axis_z]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [stress_00]
    type = RankTwoAux
    variable = stress_00
    rank_two_tensor = local_stress_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_11]
    type = RankTwoAux
    variable = stress_11
    rank_two_tensor = local_stress_t_points_0
    index_i = 1
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_22]
    type = RankTwoAux
    variable = stress_22
    rank_two_tensor = local_stress_t_points_0
    index_i = 2
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_01]
    type = RankTwoAux
    variable = stress_01
    rank_two_tensor = local_stress_t_points_0
    index_i = 0
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_02]
    type = RankTwoAux
    variable = stress_02
    rank_two_tensor = local_stress_t_points_0
    index_i = 0
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_12]
    type = RankTwoAux
    variable = stress_12
    rank_two_tensor = local_stress_t_points_0
    index_i = 1
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [force_1]
    type = ShellResultantsAux
    variable = force_1
    stress_resultant = axial_force_0
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [force_2]
    type = ShellResultantsAux
    variable = force_2
    stress_resultant = axial_force_1
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [moment_11]
    type = ShellResultantsAux
    variable = moment_11
    stress_resultant = bending_moment_0
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [moment_22]
    type = ShellResultantsAux
    variable = moment_22
    stress_resultant = bending_moment_1
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [moment_12]
    type = ShellResultantsAux
    variable = moment_12
    stress_resultant = bending_moment_01
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [shear_12]
    type = ShellResultantsAux
    variable = shear_12
    stress_resultant = shear_force_01
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [shear_13]
    type = ShellResultantsAux
    variable = shear_13
    stress_resultant = shear_force_02
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [shear_23]
    type = ShellResultantsAux
    variable = shear_23
    stress_resultant = shear_force_12
    thickness = 0.01
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
  [first_axis_x]
    type = ShellLocalCoordinatesAux
    variable = first_axis_x
    property = first_local_vector
    component = 0
  []
  [first_axis_y]
    type = ShellLocalCoordinatesAux
    variable = first_axis_y
    property = first_local_vector
    component = 1
  []
  [first_axis_z]
    type = ShellLocalCoordinatesAux
    variable = first_axis_z
    property = first_local_vector
    component = 2
  []
  [second_axis_x]
    type = ShellLocalCoordinatesAux
    variable = second_axis_x
    property = second_local_vector
    component = 0
  []
  [second_axis_y]
    type = ShellLocalCoordinatesAux
    variable = second_axis_y
    property = second_local_vector
    component = 1
  []
  [second_axis_z]
    type = ShellLocalCoordinatesAux
    variable = second_axis_z
    property = second_local_vector
    component = 2
  []
  [normal_axis_x]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_x
    property = normal_local_vector
    component = 0
  []
  [normal_axis_y]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_y
    property = normal_local_vector
    component = 1
  []
  [normal_axis_z]
    type = ShellLocalCoordinatesAux
    variable = normal_axis_z
    property = normal_local_vector
    component = 2
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type'
  petsc_options_value = ' lu'
  line_search = 'none'
  nl_rel_tol = 1e-10
  nl_abs_tol = 1e-8
  dt = 1.0
  dtmin = 1.0
  end_time = 1.0
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    block = '100'
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    block = '100'
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    block = '100'
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 1e6
    poissons_ratio = 0.3
    block = '100'
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    block = '100'
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.01
    through_thickness_order = SECOND
    reference_first_local_direction = '1 -1 0'
  []
  [stress]
    type = ADComputeShellStress
    block = '100'
    through_thickness_order = SECOND
  []
[]
[Postprocessors]
  [disp_x1]
    type = PointValue
    point = '1 0 1'
    variable = disp_x
  []
  [disp_y1]
    type = PointValue
    point = '1 0 1'
    variable = disp_y
  []
  [disp_x2]
    type = PointValue
    point = '0 1 1'
    variable = disp_x
  []
  [disp_y2]
    type = PointValue
    point = '0 1 1'
    variable = disp_y
  []
[]
[Outputs]
  exodus = true
  csv = true
[]
(test/tests/meshgenerators/sideset_around_subdomain_generator/around_normals_generator.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = twoblocks.e
  []
  [./top_block1]
    type = SideSetsAroundSubdomainGenerator
    input = fmg
    block = 'left'
    new_boundary = 'top_of_left_block'
    normal = '0 0 1'
  []
  [./bottom_block2]
    type = SideSetsAroundSubdomainGenerator
    input = top_block1
    block = 'right'
    new_boundary = 'bottom_of_right_block'
    normal = '0 0 -1'
  []
  [./right_block1]
    type = SideSetsAroundSubdomainGenerator
    input = bottom_block2
    block = 'left'
    new_boundary = 'right_of_left_block'
    normal = '1 0 0'
  []
  [./right_block2]
    type = SideSetsAroundSubdomainGenerator
    input = right_block1
    block = 'right'
    new_boundary = 'right_of_right_block'
    normal = '1 0 0'
  []
[]
[Outputs]
  exodus = true
[]
(test/tests/userobjects/solution_user_object/read_exodus_second_order.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = write_exodus_second_order_out.e
  []
[]
[Variables]
  [./u]
    family = LAGRANGE
    order = SECOND
  [../]
[]
[AuxVariables]
  [temperature_field]
    family = LAGRANGE
    order = SECOND
  []
  [pressure_field]
    family = LAGRANGE
    order = SECOND
  []
[]
[AuxKernels]
  [./nn]
    type = SolutionAux
    variable = temperature_field
    solution = soln
    from_variable = temperature
    #direct = true
  [../]
  [./nn2]
    type = SolutionAux
    variable = pressure_field
    solution = soln
    from_variable = pressure
    #direct = true
  [../]
[]
[UserObjects]
  [./soln]
    type = SolutionUserObject
    mesh = write_exodus_second_order_out.e
    system_variables = 'temperature pressure'
    nodal_variable_order = SECOND
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./time]
    type = TimeDerivative
    variable = u
  [../]
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = u
    boundary = left
    value = 0
  [../]
  [./right]
    type = DirichletBC
    variable = u
    boundary = right
    value = 1
  [../]
[]
[Executioner]
  type = Transient
  num_steps = 2
  dt = 1.0
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_finer.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = friction_uo
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = friction_uo
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = -pc_type
  petsc_options_value = lu
  line_search = 'none'
  nl_abs_tol = 1e-10
  nl_rel_tol = 1e-8
  nl_max_its = 1300
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.2 # 3.5
  dt = 0.1
  dtmin = 0.001
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure  normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[UserObjects]
  [friction_uo]
    type = PenaltyWeightedGapUserObject
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    disp_x = disp_x
    disp_y = disp_y
    penalty = 1e7
    penetration_tolerance = 1e-12
    use_physical_gap = true
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
[]
(test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator.i)
[Mesh]
  [./fmg_left]
    type = FileMeshGenerator
    file = left.e
  []
  [./fmg_center]
    type = FileMeshGenerator
    file = center.e
  []
  [./fmg_right]
    type = FileMeshGenerator
    file = right.e
  []
  [./smg]
    type = StitchMeshGenerator
    inputs = 'fmg_left fmg_center fmg_right'
    clear_stitched_boundary_ids = true
    stitch_boundaries_pairs = 'right left;
                               right left'
    merge_boundaries_with_same_name = false
  []
[]
[Outputs]
  exodus = true
[]
(modules/peridynamics/test/tests/mesh/3D_sidesets_partial_boundary.i)
[Mesh]
  type = PeridynamicsMesh
  horizon_number = 3
  [./fmg]
    type = FileMeshGenerator
    file = cylinder.e
  [../]
  [./mgpd]
    type = MeshGeneratorPD
    input = fmg
    retain_fe_mesh = false
    construct_pd_sidesets = true
  [../]
[]
(modules/porous_flow/examples/fluidflower/fluidflower.i)
# FluidFlower International Benchmark study model
# CSIRO 2023
#
# This example can be used to reproduce the results presented by the
# CSIRO team as part of this benchmark study. See
# Green, C., Jackson, S.J., Gunning, J., Wilkins, A. and Ennis-King, J.,
# 2023. Modelling the FluidFlower: Insights from Characterisation and
# Numerical Predictions. Transport in Porous Media.
#
# This example takes a long time to run! The large density contrast
# between the gas phase CO2 and the water makes convergence very hard,
# so small timesteps must be taken during injection.
#
# This example uses a simplified mesh in order to be run during the
# automated testing. To reproduce the results of the benchmark study,
# replace the simple layered input mesh with the one located in the
# large_media submodule.
#
# The mesh file contains:
# - porosity as given by FluidFlower description
# - permeability as given by FluidFlower description
# - subdomain ids for each sand type
#
# The nominal thickness of the FluidFlower tank is 19mm. To keep masses consistent
# with the experiment, porosity and permeability are multiplied by the thickness
thickness = 0.019
#
# Properties associated with each sand type associated with mesh block ids
#
# block 0 - ESF (very fine sand)
sandESF = '0 10 20'
sandESF_pe = 1471.5
sandESF_krg = 0.09
sandESF_swi = 0.32
sandESF_krw = 0.71
sandESF_sgi = 0.14
# block 1 - C - Coarse lower
sandC = '1 21'
sandC_pe = 294.3
sandC_krg = 0.05
sandC_swi = 0.14
sandC_krw = 0.93
sandC_sgi = 0.1
# block 2 - D - Coarse upper
sandD = '2 22'
sandD_pe = 98.1
sandD_krg = 0.02
sandD_swi = 0.12
sandD_krw = 0.95
sandD_sgi = 0.08
# block 3 - E - Very Coarse lower
sandE = '3 13 23'
sandE_pe = 10
sandE_krg = 0.1
sandE_swi = 0.12
sandE_krw = 0.93
sandE_sgi = 0.06
# block 4 - F - Very Coarse upper
sandF = '4 14 24 34'
sandF_pe = 10
sandF_krg = 0.11
sandF_swi = 0.12
sandF_krw = 0.72
sandF_sgi = 0.13
# block 5 - G - Flush Zone
sandG = '5 15 35'
sandG_pe = 10
sandG_krg = 0.16
sandG_swi = 0.1
sandG_krw = 0.75
sandG_sgi = 0.06
# block 6 - Fault 1 - Heterogeneous
fault1 = '6 26'
fault1_pe = 10
fault1_krg = 0.16
fault1_swi = 0.1
fault1_krw = 0.75
fault1_sgi = 0.06
# block 7 - Fault 2 - Impermeable
# Note: this fault has been removed from the mesh (no elements in this region)
# block 8 - Fault 3 - Homogeneous
fault3 = '8'
fault3_pe = 10
fault3_krg = 0.16
fault3_swi = 0.1
fault3_krw = 0.75
fault3_sgi = 0.06
# Top layer
top_layer = '9'
# Boxes A, B an C used to report values (sg, sgr, xco2, etc)
boxA = '10 13 14 15 34 35'
boxB = '20 21 22 23 24 26'
boxC = '34 35'
# Furthermore, the seal sand unit in boxes A and B
seal_boxA = '10'
seal_boxB = '20'
# CO2 injection details:
# CO2 density ~1.8389 kg/m3 at 293.15 K, 1.01325e5 Pa
# Injection in Port (9, 3) for 5 hours.
# Injection in Port (17, 7) for 2:45 hours.
# Injection of 10 ml/min = 0.1666 ml/s = 1.666e-7 m3/s = ~3.06e-7 kg/s.
# Total mass of CO2 injected ~ 8.5g.
inj_rate = 3.06e-7
[Mesh]
  [mesh]
    type = FileMeshGenerator
    file = 'fluidflower_test.e'
    # file = '../../../../large_media/porous_flow/examples/fluidflower/fluidflower.e'
    use_for_exodus_restart = true
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[GlobalParams]
  PorousFlowDictator = dictator
  gravity = '0 -9.81 0'
  temperature = temperature
  log_extension = false
[]
[Variables]
  [pgas]
    family = MONOMIAL
    order = CONSTANT
    fv = true
  []
  [z]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    scaling = 1e4
  []
[]
[AuxVariables]
  [xnacl]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 0.0055
  []
  [temperature]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_condition = 20
  []
  [porosity]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_from_file_var = porosity
  []
  [porosity_times_thickness]
    family = MONOMIAL
    order = CONSTANT
    fv = true
  []
  [permeability]
    family = MONOMIAL
    order = CONSTANT
    fv = true
    initial_from_file_var = permeability
  []
  [permeability_times_thickness]
    family = MONOMIAL
    order = CONSTANT
    fv = true
  []
  [saturation_water]
    family = MONOMIAL
    order = CONSTANT
  []
  [saturation_gas]
    family = MONOMIAL
    order = CONSTANT
  []
  [pressure_water]
    family = MONOMIAL
    order = CONSTANT
  []
  [pc]
    family = MONOMIAL
    order = CONSTANT
  []
  [x0_water]
    order = CONSTANT
    family = MONOMIAL
  []
  [x0_gas]
    order = CONSTANT
    family = MONOMIAL
  []
  [x1_water]
    order = CONSTANT
    family = MONOMIAL
  []
  [x1_gas]
    order = CONSTANT
    family = MONOMIAL
  []
  [density_water]
    order = CONSTANT
    family = MONOMIAL
  []
  [density_gas]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [porosity_times_thickness]
    type = ParsedAux
    variable = porosity_times_thickness
    coupled_variables = porosity
    expression = 'porosity * ${thickness}'
    execute_on = 'initial'
  []
  [permeability_times_thickness]
    type = ParsedAux
    variable = permeability_times_thickness
    coupled_variables = permeability
    expression = 'permeability * ${thickness}'
    execute_on = 'initial'
  []
  [pressure_water]
    type = ADPorousFlowPropertyAux
    variable = pressure_water
    property = pressure
    phase = 0
    execute_on = 'initial timestep_end'
  []
  [saturation_water]
    type = ADPorousFlowPropertyAux
    variable = saturation_water
    property = saturation
    phase = 0
    execute_on = 'initial timestep_end'
  []
  [saturation_gas]
    type = ADPorousFlowPropertyAux
    variable = saturation_gas
    property = saturation
    phase = 1
    execute_on = 'initial timestep_end'
  []
  [density_water]
    type = ADPorousFlowPropertyAux
    variable = density_water
    property = density
    phase = 0
    execute_on = 'initial timestep_end'
  []
  [density_gas]
    type = ADPorousFlowPropertyAux
    variable = density_gas
    property = density
    phase = 1
    execute_on = 'initial timestep_end'
  []
  [x1_water]
    type = ADPorousFlowPropertyAux
    variable = x1_water
    property = mass_fraction
    phase = 0
    fluid_component = 1
    execute_on = 'initial timestep_end'
  []
  [x1_gas]
    type = ADPorousFlowPropertyAux
    variable = x1_gas
    property = mass_fraction
    phase = 1
    fluid_component = 1
    execute_on = 'initial timestep_end'
  []
  [x0_water]
    type = ADPorousFlowPropertyAux
    variable = x0_water
    property = mass_fraction
    phase = 0
    fluid_component = 0
    execute_on = 'initial timestep_end'
  []
  [x0_gas]
    type = ADPorousFlowPropertyAux
    variable = x0_gas
    property = mass_fraction
    phase = 1
    fluid_component = 0
    execute_on = 'initial timestep_end'
  []
  [pc]
    type = ADPorousFlowPropertyAux
    variable = pc
    property = capillary_pressure
    execute_on = 'initial timestep_end'
  []
[]
[FVKernels]
  [mass0]
    type = FVPorousFlowMassTimeDerivative
    variable = pgas
    fluid_component = 0
  []
  [flux0]
    type = FVPorousFlowAdvectiveFlux
    variable = pgas
    fluid_component = 0
  []
  [diff0]
    type = FVPorousFlowDispersiveFlux
    variable = pgas
    fluid_component = 0
    disp_long = '0 0'
    disp_trans = '0 0'
  []
  [mass1]
    type = FVPorousFlowMassTimeDerivative
    variable = z
    fluid_component = 1
  []
  [flux1]
    type = FVPorousFlowAdvectiveFlux
    variable = z
    fluid_component = 1
  []
  [diff1]
    type = FVPorousFlowDispersiveFlux
    variable = z
    fluid_component = 1
    disp_long = '0 0'
    disp_trans = '0 0'
  []
[]
[DiracKernels]
  [injector1]
    type = ConstantPointSource
    point = '0.9 0.3 0'
    value = ${inj_rate}
    variable = z
  []
  [injector2]
    type = ConstantPointSource
    point = '1.7 0.7 0'
    value = ${inj_rate}
    variable = z
  []
[]
[Controls]
  [injection1]
    type = ConditionalFunctionEnableControl
    enable_objects = 'DiracKernels::injector1'
    conditional_function = injection_schedule1
  []
  [injection2]
    type = ConditionalFunctionEnableControl
    enable_objects = 'DiracKernels::injector2'
    conditional_function = injection_schedule2
  []
[]
[Functions]
  [initial_p]
    type = ParsedFunction
    symbol_names = 'p0 g H rho0'
    symbol_values = '101.325e3 9.81 1.5 1002'
    expression = 'p0 + rho0 * g * (H - y)'
  []
  [injection_schedule1]
    type = ParsedFunction
    expression = 'if(t >= 0 & t <= 1.8e4, 1, 0)'
  []
  [injection_schedule2]
    type = ParsedFunction
    expression = 'if(t >= 8.1e3 & t <= 1.8e4, 1, 0)'
  []
[]
[ICs]
  [p]
    type = FunctionIC
    variable = pgas
    function = initial_p
  []
[]
[FVBCs]
  [pressure_top]
    type = FVPorousFlowAdvectiveFluxBC
    boundary = top
    porepressure_value = 1.01325e5
    variable = pgas
  []
[]
[FluidProperties]
  [water]
    type = Water97FluidProperties
  []
  [watertab]
    type = TabulatedBicubicFluidProperties
    fp = water
    save_file = false
    pressure_min = 1e5
    pressure_max = 1e6
    temperature_min = 290
    temperature_max = 300
    num_p = 20
    num_T = 10
  []
  [co2]
    type = CO2FluidProperties
  []
  [co2tab]
    type = TabulatedBicubicFluidProperties
    fp = co2
    save_file = false
    pressure_min = 1e5
    pressure_max = 1e6
    temperature_min = 290
    temperature_max = 300
    num_p = 20
    num_T = 10
  []
  [brine]
    type = BrineFluidProperties
    water_fp = watertab
  []
[]
[UserObjects]
  [dictator]
    type = PorousFlowDictator
    porous_flow_vars = 'pgas z'
    number_fluid_phases = 2
    number_fluid_components = 2
  []
  [sandESF_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandESF_pe}
    lambda = 2
    block = ${sandESF}
    pc_max = 1e4
    sat_lr = ${sandESF_swi}
  []
  [sandC_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandC_pe}
    lambda = 2
    block = ${sandC}
    pc_max = 1e4
    sat_lr = ${sandC_swi}
  []
  [sandD_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandD_pe}
    lambda = 2
    block = ${sandD}
    pc_max = 1e4
    sat_lr = ${sandD_swi}
  []
  [sandE_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandE_pe}
    lambda = 2
    block = ${sandE}
    pc_max = 1e4
    sat_lr = ${sandE_swi}
  []
  [sandF_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandF_pe}
    lambda = 2
    block = ${sandF}
    pc_max = 1e4
    sat_lr = ${sandF_swi}
  []
  [sandG_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${sandG_pe}
    lambda = 2
    block = ${sandG}
    pc_max = 1e4
    sat_lr = ${sandG_swi}
  []
  [fault1_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${fault1_pe}
    lambda = 2
    block = ${fault1}
    pc_max = 1e4
    sat_lr = ${fault1_swi}
  []
  [fault3_pc]
    type = PorousFlowCapillaryPressureBC
    pe = ${fault3_pe}
    lambda = 2
    block = ${fault3}
    pc_max = 1e4
    sat_lr = ${fault3_swi}
  []
  [top_layer_pc]
    type = PorousFlowCapillaryPressureConst
    pc = 0
    block =  ${top_layer}
  []
  [sandESF_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandESF_pc
  []
  [sandC_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandC_pc
  []
  [sandD_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandD_pc
  []
  [sandE_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandE_pc
  []
  [sandF_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandF_pc
  []
  [sandG_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = sandG_pc
  []
  [fault1_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = fault1_pc
  []
  [fault3_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = fault3_pc
  []
  [top_layer_fs]
    type = PorousFlowBrineCO2
    brine_fp = brine
    co2_fp = co2tab
    capillary_pressure = top_layer_pc
  []
[]
[Materials]
  [temperature]
    type = ADPorousFlowTemperature
    temperature = temperature
  []
  [sandESF_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandESF_fs
    capillary_pressure = sandESF_pc
    block = ${sandESF}
  []
  [sandC_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandC_fs
    capillary_pressure = sandC_pc
    block = ${sandC}
  []
  [sandD_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandD_fs
    capillary_pressure = sandD_pc
    block = ${sandD}
  []
  [sandE_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandE_fs
    capillary_pressure = sandE_pc
    block = ${sandE}
  []
  [sandF_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandF_fs
    capillary_pressure = sandF_pc
    block = ${sandF}
  []
  [sandG_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = sandG_fs
    capillary_pressure = sandG_pc
    block = ${sandG}
  []
  [fault1_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = fault1_fs
    capillary_pressure = fault1_pc
    block = ${fault1}
  []
  [fault3_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = fault3_fs
    capillary_pressure = fault3_pc
    block = ${fault3}
  []
  [top_layer_brineco2]
    type = ADPorousFlowFluidState
    gas_porepressure = pgas
    z = z
    temperature_unit = Celsius
    xnacl = xnacl
    fluid_state = top_layer_fs
    capillary_pressure = top_layer_pc
    block = ${top_layer}
  []
  [porosity]
    type = ADPorousFlowPorosityConst
    porosity = porosity_times_thickness
  []
  [permeability]
    type = ADPorousFlowPermeabilityConstFromVar
    perm_xx = permeability_times_thickness
    perm_yy = permeability_times_thickness
    perm_zz = permeability_times_thickness
  []
  [diffcoeff]
    type = ADPorousFlowDiffusivityConst
    tortuosity = '1 1'
    diffusion_coeff = '2e-9 2e-9 0 0'
  []
  [sandESF_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandESF_swi}
    sum_s_res = ${fparse sandESF_sgi + sandESF_swi}
    scaling = ${sandESF_krw}
    block = ${sandESF}
  []
  [sandESF_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandESF_sgi}
    sum_s_res = ${fparse sandESF_sgi + sandESF_swi}
    scaling = ${sandESF_krg}
    block = ${sandESF}
  []
  [sandC_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandC_swi}
    sum_s_res = ${fparse sandC_sgi + sandC_swi}
    scaling = ${sandC_krw}
    block = ${sandC}
  []
  [sandC_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandC_sgi}
    sum_s_res = ${fparse sandC_sgi + sandC_swi}
    scaling = ${sandC_krg}
    block = ${sandC}
  []
  [sandD_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandD_swi}
    sum_s_res = ${fparse sandD_sgi + sandD_swi}
    scaling = ${sandD_krw}
    block = ${sandD}
  []
  [sandD_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandD_sgi}
    sum_s_res = ${fparse sandD_sgi + sandD_swi}
    scaling = ${sandD_krg}
    block = ${sandD}
  []
  [sandE_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandE_swi}
    sum_s_res = ${fparse sandE_sgi + sandE_swi}
    scaling = ${sandE_krw}
    block = ${sandE}
  []
  [sandE_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandE_sgi}
    sum_s_res = ${fparse sandE_sgi + sandE_swi}
    scaling = ${sandE_krg}
    block = ${sandE}
  []
  [sandF_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandF_swi}
    sum_s_res = ${fparse sandF_sgi + sandF_swi}
    scaling = ${sandF_krw}
    block = ${sandF}
  []
  [sandF_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandF_sgi}
    sum_s_res = ${fparse sandF_sgi + sandF_swi}
    scaling = ${sandF_krg}
    block = ${sandF}
  []
  [sandG_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${sandG_swi}
    sum_s_res = ${fparse sandG_sgi + sandG_swi}
    scaling = ${sandG_krw}
    block = ${sandG}
  []
  [sandG_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${sandG_sgi}
    sum_s_res = ${fparse sandG_sgi + sandG_swi}
    scaling = ${sandG_krg}
    block = ${sandG}
  []
  [fault1_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${fault1_swi}
    sum_s_res = ${fparse fault1_sgi + fault1_swi}
    scaling = ${fault1_krw}
    block = ${fault1}
  []
  [fault1_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${fault1_sgi}
    sum_s_res = ${fparse fault1_sgi + fault1_swi}
    scaling = ${fault1_krg}
    block = ${fault1}
  []
  [fault3_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    s_res = ${fault3_swi}
    sum_s_res = ${fparse fault3_sgi + fault3_swi}
    scaling = ${fault3_krw}
    block = ${fault3}
  []
  [fault3_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    s_res = ${fault3_sgi}
    sum_s_res = ${fparse fault3_sgi + fault3_swi}
    scaling = ${fault3_krg}
    block = ${fault3}
  []
  [top_layer_relperm0]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 0
    lambda = 2
    block = ${top_layer}
  []
  [top_layer_relperm1]
    type = ADPorousFlowRelativePermeabilityBC
    phase = 1
    nw_phase = true
    lambda = 2
    block = ${top_layer}
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
    petsc_options = '-ksp_snes_ew'
    petsc_options_iname = '-ksp_type -pc_type -pc_factor_mat_solver_package -sub_pc_factor_shift_type'
    petsc_options_value = 'gmres lu mumps NONZERO'
    # petsc_options_iname = '-ksp_type -pc_type -pc_hypre_type -sub_pc_type -sub_pc_factor_shift_type -sub_pc_factor_levels -ksp_gmres_restart'
    # petsc_options_value = 'gmres hypre boomeramg lu NONZERO 4 301'
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  dtmax = 60
  start_time = 0
  end_time = 4.32e5
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-8
  nl_max_its = 15
  l_tol = 1e-5
  l_abs_tol = 1e-8
  # line_search = none # Can be a useful option for this problem
  [TimeSteppers]
    [time]
      type = FunctionDT
      growth_factor = 2
      cutback_factor_at_failure = 0.5
      function = 'if(t<1.8e4, 2, if(t<3.6e4, 20, 60))'
    []
  []
[]
[Postprocessors]
  [p_5_3]
    type = PointValue
    variable = pgas
    point = '0.5 0.3 0'
    execute_on = 'initial timestep_end'
  []
  [p_5_3_w]
    type = PointValue
    variable = pressure_water
    point = '0.5 0.3 0'
    execute_on = 'initial timestep_end'
  []
  [p_5_7]
    type = PointValue
    variable = pgas
    point = '0.5 0.7 0'
    execute_on = 'initial timestep_end'
  []
  [p_5_7_w]
    type = PointValue
    variable = pressure_water
    point = '0.5 0.7 0'
    execute_on = 'initial timestep_end'
  []
  [p_9_3]
    type = PointValue
    variable = pgas
    point = '0.9 0.3 0'
    execute_on = 'initial timestep_end'
  []
  [p_9_3_w]
    type = PointValue
    variable = pressure_water
    point = '0.9 0.3 0'
    execute_on = 'initial timestep_end'
  []
  [p_15_5]
    type = PointValue
    variable = pgas
    point = '1.5 0.5 0'
    execute_on = 'initial timestep_end'
  []
  [p_15_5_w]
    type = PointValue
    variable = pressure_water
    point = '1.5 0.5 0'
    execute_on = 'initial timestep_end'
  []
  [p_17_7]
    type = PointValue
    variable = pgas
    point = '1.7 0.7 0'
    execute_on = 'initial timestep_end'
  []
  [p_17_7_w]
    type = PointValue
    variable = pressure_water
    point = '1.7 0.7 0'
    execute_on = 'initial timestep_end'
  []
  [p_17_11]
    type = PointValue
    variable = pgas
    point = '1.7 1.1 0'
    execute_on = 'initial timestep_end'
  []
  [p_17_11_w]
    type = PointValue
    variable = pressure_water
    point = '1.7 1.1 0'
    execute_on = 'initial timestep_end'
  []
  [x0mass]
    type = FVPorousFlowFluidMass
    fluid_component = 0
    phase = '0 1'
    execute_on = 'initial timestep_end'
  []
  [x1mass]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0 1'
    execute_on = 'initial timestep_end'
  []
  [x1gas]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '1'
    execute_on = 'initial timestep_end'
  []
  [boxA]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0 1'
    block = ${boxA}
    execute_on = 'initial timestep_end'
  []
  [imm_A_sandESF]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandESF_sgi}
    block = 10
    execute_on = 'initial timestep_end'
  []
  [imm_A_sandE]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandE_sgi}
    block = 13
    execute_on = 'initial timestep_end'
  []
  [imm_A_sandF]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandF_sgi}
    block = '14 34'
    execute_on = 'initial timestep_end'
  []
  [imm_A_sandG]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandG_sgi}
    block = '15 35'
    execute_on = 'initial timestep_end'
  []
  [imm_A]
    type = LinearCombinationPostprocessor
    pp_names = 'imm_A_sandESF imm_A_sandE imm_A_sandF imm_A_sandG'
    pp_coefs = '1 1 1 1'
    execute_on = 'initial timestep_end'
  []
  [diss_A]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 0
    block = ${boxA}
    execute_on = 'initial timestep_end'
  []
  [seal_A]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0 1'
    block = ${seal_boxA}
    execute_on = 'initial timestep_end'
  []
  [boxB]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0 1'
    block = ${boxB}
    execute_on = 'initial timestep_end'
  []
  [imm_B_sandESF]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandESF_sgi}
    block = 20
    execute_on = 'initial timestep_end'
  []
  [imm_B_sandC]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandC_sgi}
    block = 21
    execute_on = 'initial timestep_end'
  []
  [imm_B_sandD]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandD_sgi}
    block = 22
    execute_on = 'initial timestep_end'
  []
  [imm_B_sandE]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandE_sgi}
    block = 23
    execute_on = 'initial timestep_end'
  []
  [imm_B_sandF]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${sandF_sgi}
    block = 24
    execute_on = 'initial timestep_end'
  []
  [imm_B_fault1]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 1
    saturation_threshold = ${fault1_sgi}
    block = 26
    execute_on = 'initial timestep_end'
  []
  [imm_B]
    type = LinearCombinationPostprocessor
    pp_names = 'imm_B_sandESF imm_B_sandC imm_B_sandD imm_B_sandE imm_B_sandF imm_B_fault1'
    pp_coefs = '1 1 1 1 1 1'
    execute_on = 'initial timestep_end'
  []
  [diss_B]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = 0
    block = ${boxB}
    execute_on = 'initial timestep_end'
  []
  [seal_B]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0 1'
    block = ${seal_boxB}
    execute_on = 'initial timestep_end'
  []
  [boxC]
    type = FVPorousFlowFluidMass
    fluid_component = 1
    phase = '0'
    block = ${boxC}
    execute_on = 'initial timestep_end'
  []
[]
[Outputs]
  print_linear_residuals = false
  perf_graph = true
  # exodus = true
  [csv]
     type = CSV
  []
[]
(test/tests/meshgenerators/elements_to_simplices_converter/hex_prism_convert.i)
[Mesh]
  [accg]
    type = FileMeshGenerator
    file = 'hex_prism_2d.e'
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = accg
    heights = '0.4 0.8 1.2'
    num_layers = '1 2 3'
    direction = '0 0 1'
    bottom_boundary = '200'
    top_boundary = '300'
    subdomain_swaps = '10 11 15 16;
                       10 12 15 17;
                       10 13 15 18'
  []
  [convert]
    type = ElementsToSimplicesConverter
    input = extrude
  []
  # Simplices conversion currently depends on element id numbering
  allow_renumbering = false
[]
(modules/contact/test/tests/pdass_problems/ironing_penalty.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = iron.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '10'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '20'
    new_block_name = 'primary_lower'
    input = secondary
  []
  patch_update_strategy = auto
  patch_size = 20
  allow_renumbering = false
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[AuxVariables]
  [penalty_normal_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [penalty_frictional_pressure]
    order = FIRST
    family = LAGRANGE
  []
  [accumulated_slip_one]
    order = FIRST
    family = LAGRANGE
  []
  [tangential_vel_one]
    order = FIRST
    family = LAGRANGE
  []
  [real_weighted_gap]
    order = FIRST
    family = LAGRANGE
  []
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
  [von_mises]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 2. 8.'
    y = '0. -1.0 -1.0'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 8.'
    y = '0. 8.'
  []
[]
[Kernels]
  [TensorMechanics]
    use_displaced_mesh = true
    save_in = 'saved_x saved_y'
    block = '1 2'
    strain = FINITE
  []
[]
[AuxKernels]
  [penalty_normal_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = friction_uo
    contact_quantity = normal_pressure
  []
  [penalty_frictional_pressure_auxk]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = friction_uo
    contact_quantity = tangential_pressure_one
  []
  [penalty_accumulated_slip_auxk]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = friction_uo
    contact_quantity = accumulated_slip_one
  []
  [penalty_tangential_vel_auxk]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = friction_uo
    contact_quantity = tangential_velocity_one
  []
  [real_weighted_gap_auxk]
    type = MortarUserObjectAux
    variable = real_weighted_gap
    user_object = friction_uo
    contact_quantity = normal_gap
  []
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2'
  []
  [von_mises_kernel]
    #Calculates the von mises stress and assigns it to von_mises
    type = RankTwoScalarAux
    variable = von_mises
    rank_two_tensor = stress
    execute_on = timestep_end
    scalar_type = VonMisesStress
    block = '1 2'
  []
[]
[VectorPostprocessors]
  [penalty_normal_pressure]
    type = NodalValueSampler
    variable = penalty_normal_pressure
    boundary = 10
    sort_by = id
  []
[]
[BCs]
  [bot_x_disp]
    type = DirichletBC
    variable = disp_x
    boundary = '40'
    value = 0.0
    preset = false
  []
  [bot_y_disp]
    type = DirichletBC
    variable = disp_y
    boundary = '40'
    value = 0.0
    preset = false
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = '30'
    function = disp_ramp_vert
    preset = false
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = '30'
    function = disp_ramp_horz
    preset = false
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2'
    youngs_modulus = 6896
    poissons_ratio = 0.32
  []
  [stuff1_strain]
    type = ComputeFiniteStrain
    block = '2'
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 689.6
    poissons_ratio = 0.32
  []
  [stuff2_strain]
    type = ComputeFiniteStrain
    block = '1'
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_type'
  petsc_options_value = 'lu     superlu_dist'
  line_search = 'none'
  nl_abs_tol = 1e-7
  nl_rel_tol = 1e-7
  l_tol = 1e-6
  l_max_its = 50
  nl_max_its = 30
  start_time = 0.0
  end_time = 6.5
  dt = 0.0125
  dtmin = 1e-5
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = true
  [chkfile]
    type = CSV
    start_time = 0.0
    execute_vector_postprocessors_on = FINAL
  []
  [console]
    type = Console
    max_rows = 5
  []
[]
[Debug]
  show_var_residual_norms = true
[]
[UserObjects]
  [friction_uo]
    type = PenaltyFrictionUserObject
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    disp_x = disp_x
    disp_y = disp_y
    friction_coefficient = 0.1 # with 2.0 works
    secondary_variable = disp_x
    penalty = 1e5
    penalty_friction = 1e4
    use_physical_gap = true
  []
[]
[Constraints]
  [x]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [y]
    type = NormalMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = friction_uo
  []
  [t_x]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
  [t_y]
    type = TangentialMortarMechanicalContact
    primary_boundary = 20
    secondary_boundary = 10
    primary_subdomain = 10000
    secondary_subdomain = 10001
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_velocities_uo = friction_uo
  []
[]
(test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga.i)
[Mesh]
  [cyl2d_iga]
    type = FileMeshGenerator
    file = PressurizedCyl_Patch6_4Elem.e
  []
  allow_renumbering = false   # VTK diffs via XMLDiff are
  parallel_type = replicated  # really fragile
[]
[Variables]
  [u]
    order = SECOND  # Must match mesh order
    family = RATIONAL_BERNSTEIN
  []
[]
[Kernels]
  [time]
    type = TimeDerivative
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [diff]
    type = Diffusion
    variable = u
    block = 0  # Avoid direct calculations on spline nodes
  []
  [null]
    type = NullKernel
    variable = u
    block = 1  # Keep kernel coverage check happy
  []
[]
[ICs]
  [u]
    type = FunctionIC
    variable = u
    function = 'sin(x)'
  []
[]
[Executioner]
  type = Transient
  num_steps = 2
  solve_type = NEWTON
  dtmin = 1
[]
[Outputs]
  vtk = true
[]
(modules/solid_mechanics/test/tests/shell/static/tapered.i)
# Test for the stress and strain output for tapered shell elements.
# A tapered beam is represented with shell elements in XY plane
# having Young's Modulus of 210000 and poissons ratio of 0.3.
# The displacement in X direction is constrained in the left end and the
# displacement of center node of the left end is constrained in Y direction.
# A uniform displacement is applied at the right end.
# The problem is symmetric about Y-axis and the results are symmetric.
[Mesh]
  [input]
    type = FileMeshGenerator
    file = taperedmesh.e
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [rot_x]
  []
  [rot_y]
  []
[]
[AuxVariables]
  [stress_00]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_01]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_10]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_02]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_20]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_21]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_00]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_11]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_22]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_01]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_10]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_02]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_20]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_12]
    order = CONSTANT
    family = MONOMIAL
  []
  [strain_21]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    block = 1
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    block = 1
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    block = 1
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    block = 1
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    block = 1
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
[]
[AuxKernels]
  [stress_00]
    type = RankTwoAux
    variable = stress_00
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_00]
    type = RankTwoAux
    variable = strain_00
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_11]
    type = RankTwoAux
    variable = stress_11
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_11]
    type = RankTwoAux
    variable = strain_11
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_22]
    type = RankTwoAux
    variable = stress_22
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_22]
    type = RankTwoAux
    variable = strain_22
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_01]
    type = RankTwoAux
    variable = stress_01
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_01]
    type = RankTwoAux
    variable = strain_01
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [stress_10]
    type = RankTwoAux
    variable = stress_10
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_10]
    type = RankTwoAux
    variable = strain_10
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_02]
    type = RankTwoAux
    variable = stress_02
    rank_two_tensor = global_stress_t_points_0
    index_i = 0
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_02]
    type = RankTwoAux
    variable = strain_02
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 0
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_20]
    type = RankTwoAux
    variable = stress_20
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [strain_20]
    type = RankTwoAux
    variable = strain_20
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 0
    execute_on = TIMESTEP_END
  []
  [stress_12]
    type = RankTwoAux
    variable = stress_12
    rank_two_tensor = global_stress_t_points_0
    index_i = 1
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [strain_12]
    type = RankTwoAux
    variable = strain_12
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 1
    index_j = 2
    execute_on = TIMESTEP_END
  []
  [stress_21]
    type = RankTwoAux
    variable = stress_21
    rank_two_tensor = global_stress_t_points_0
    index_i = 2
    index_j = 1
    execute_on = TIMESTEP_END
  []
  [strain_21]
    type = RankTwoAux
    variable = strain_21
    rank_two_tensor = total_global_strain_t_points_0
    index_i = 2
    index_j = 1
    execute_on = TIMESTEP_END
  []
[]
[BCs]
  [BC_0]
    type = ADDirichletBC
    variable = disp_x
    value = 0.0
    boundary = '2' #left
  []
  [BC_1]
    type = ADDirichletBC
    variable = disp_y
    value = 0.0
    boundary = 10 #left_side_mid
  []
  [BC_2]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = '3'
    function = displacement
  []
[]
[Functions]
  [displacement]
    type = PiecewiseLinear
    x = '0.0 1.0'
    y = '0.0 0.2'
  []
[]
[Materials]
  [stress]
    type = ADComputeShellStress
    block = 1
    through_thickness_order = SECOND
  []
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 210000
    poissons_ratio = 0.3
    block = 1
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    block = 1
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.1
    through_thickness_order = SECOND
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  automatic_scaling = true
  line_search = 'none'
  nl_rel_tol = 1e-16
  nl_abs_tol = 1e-16
  dt = 1
  dtmin = 1
  end_time = 1
[]
[Outputs]
    exodus = true
[]
(test/tests/meshdivisions/extra_elem_id_division.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../positions/depletion_id_in.e'
    exodus_extra_element_integers = 'material_id pin_id assembly_id'
  []
  # To keep VPP output consistently ordered
  allow_renumbering = false
[]
[MeshDivisions]
  [extra_id_div]
    type = ExtraElementIntegerDivision
    extra_id_name = 'pin_id'
  []
[]
[AuxVariables]
  [div]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [mesh_div]
    type = MeshDivisionAux
    variable = div
    mesh_division = 'extra_id_div'
  []
[]
[VectorPostprocessors]
  [div_out]
    type = ElementValueSampler
    variable = 'div'
    sort_by = 'id'
  []
[]
[Problem]
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  csv = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-stress.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  constraint_types = 'stress strain strain stress stress strain stress stress stress'
  macro_gradient = hvar
  targets = 'stress11 zero zero stress12 stress22 zero stress13 stress23 stress33'
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = NINTH
  []
[]
[ICs]
  [disp_x]
    type = RandomIC
    variable = disp_x
    min = -0.1
    max = 0.1
  []
  [disp_y]
    type = RandomIC
    variable = disp_y
    min = -0.1
    max = 0.1
  []
  [disp_z]
    type = RandomIC
    variable = disp_z
    min = -0.1
    max = 0.1
  []
  [hvar]
    type = ScalarConstantIC
    variable = hvar
    value = 0.1
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress33]
    type = ParsedFunction
    expression = '8.0e2*t'
  []
  [stress23]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress13]
    type = ParsedFunction
    expression = '-7.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress32]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress31]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress21]
    type = ParsedFunction
    expression = '-1.5e2*t'
  []
  [zero]
    type = ConstantFunction
    value = 0
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 0.2
[]
[Outputs]
  exodus = false
  csv = false
[]
(modules/solid_mechanics/test/tests/j_integral_vtest/axisymmetric_solution_tran.i)
# This is a verification problem for a circumferential crack in a solid cylinder.
# Crack radius to cylinder ratio: 0.2
# Crack radius to cylinder height: 0.1
# Tensile load 1MPa
# Analytical result: 1.596 (see [1]), MOOSE result 1.602 (Finite strain)
# [1]: Tran and Ginaut, 'Development of industrial applications of XFEM axisymmetric model for fracture mechanics', Eng. Frac. Mech., 82 (2012)
[GlobalParams]
  order = FIRST
  family = LAGRANGE
  displacements = 'disp_x disp_y'
  volumetric_locking_correction = true
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2drz_tran.e
  []
  # uniform_refine = 4
  coord_type = RZ
[]
[DomainIntegral]
  integrals = 'JIntegral InteractionIntegralKI'
  boundary = 1001
  radius_inner = '0.1 0.2 0.4'
  radius_outer = '0.1 0.2 0.4'
  crack_direction_method = CrackDirectionVector
  crack_direction_vector = '1 0 0'
  2d = true
  axis_2d = 2
  incremental = true
  symmetry_plane = 1
  youngs_modulus = 2e6
  poissons_ratio = 0.0
  block = '1'
[]
[Physics/SolidMechanics/QuasiStatic]
  [master]
    strain = FINITE
    add_variables = true
    incremental = true
    generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx strain_yy '
                      'elastic_strain_xx elastic_strain_yy'
    decomposition_method = EigenSolution
  []
[]
[BCs]
  [plane_y]
    type = DirichletBC
    variable = disp_y
    boundary = '5001'
    value = 0.0
  []
  [Pressure]
    [sigma_0]
      boundary = 6
      factor = 1
      function = -1
    []
  []
[]
[Materials]
  [elasticity_tensor]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 2.0e6
    poissons_ratio = 0.0
  []
  [elastic_stress]
    type = ComputeFiniteStrainElasticStress
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  line_search = 'none'
  l_max_its = 50
  nl_max_its = 20
  nl_abs_tol = 1e-5
  nl_rel_tol = 1e-8
  l_tol = 1e-6
  start_time = 0.0
  dt = 1.0
  num_steps = 1
  end_time = 1
[]
[Outputs]
  execute_on = 'timestep_end'
  csv = true
  exodus = true
[]
(test/tests/mortar/continuity-3d-non-conforming/continuity_sphere_hex.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = spheres_hex8.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '102'
  []
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = 'secondary'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln_primal
    variable = T
    boundary = '1 2'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = 'x^2 + y^2 + z^2 - 6'
  []
  [exact_soln_primal]
    type = ParsedFunction
    expression = 'x^2 + y^2 + z^2'
  []
  [exact_soln_lambda]
    type = ParsedFunction
    expression = '4'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = '12'
    secondary_subdomain = '11'
    variable = lambda
    secondary_variable = T
    correct_edge_dropping = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [L2lambda]
    type = ElementL2Error
    variable = lambda
    function = exact_soln_lambda
    execute_on = 'timestep_end'
    block = 'secondary'
  []
  [L2u]
    type = ElementL2Error
    variable = T
    function = exact_soln_primal
    execute_on = 'timestep_end'
    block = '1 2'
  []
  [h]
    type = AverageElementSize
    block = '1 2'
  []
[]
(test/tests/meshgenerators/ordering_of_execution/modifier_depend_order.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = square.e
  []
  # Mesh Generators
  # If no dependencies are defined, the order of execution is not defined (based on pointer locations) so
  # this test case has several dependencies to minimize the chance of getting lucky when things aren't defined properly.
  # Rotations along different axes must occur in a defined order to end up at the right orientation at the end.
  # The final mesh will be angled at 45 degrees with new sidesets where there were none before.
  [add_side_sets]
    type = SideSetsFromNormalsGenerator
    input = last_rotate
    normals = ' 0.70710678118  0.70710678118  0
               -0.70710678118 -0.70710678118  0'
    new_boundary = 'up_right down_left'
    normal_tol = 1e-3
    fixed_normal = true
  []
  [last_rotate]
    type = TransformGenerator
    input = rotate4
    transform = ROTATE
    vector_value = '-45 0 0'
  []
  [rotate1]
    type = TransformGenerator
    input = file
    transform = ROTATE
    vector_value = '0 0 82'
  []
  [rotate3]
    type = TransformGenerator
    input = rotate2
    transform = ROTATE
    vector_value = '0 36 0'
  []
  [rotate4]
    type = TransformGenerator
    input = rotate3
    transform = ROTATE
    vector_value = '0 0 -82'
  []
  [rotate2]
    type = TransformGenerator
    input = rotate1
    transform = ROTATE
    vector_value = '0 -36 0'
  []
[]
[Variables]
  [u]
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [bottom]
    type = DirichletBC
    variable = u
    boundary = down_left
    value = 0
  []
  [top]
    type = DirichletBC
    variable = u
    boundary = up_right
    value = 1
  []
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id_block_restricted.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = unique_id.e
    exodus_extra_element_integers = 'id1 id0'
  []
  [assign_block_id]
    type = SubdomainBoundingBoxGenerator
    input = fmg
    bottom_left = '0 -2 0'
    top_right = '2 0 0'
    block_id = 1
  []
  [parse_id]
    type = UniqueExtraIDMeshGenerator
    input = assign_block_id
    id_name = 'id1 id0'
    new_id_name = 'parsed_id'
    restricted_subdomains = 1
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [parsed_id]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [aux_parsed_id]
    type = ExtraElementIDAux
    variable = parsed_id
    extra_id_name = parsed_id
  []
[]
[Outputs]
  exodus = true
  execute_on = timestep_end
[]
(modules/contact/test/tests/bouncing-block-contact/grid-sequencing/grid-sequencing.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarsest mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
[]
[Mesh]
  [File]
    type = FileMeshGenerator
    file = level0.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
  []
  [disp_y]
    block = '1 2'
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[Contact]
  [contact]
    secondary = 10
    primary = 20
    formulation = mortar
    model = coulomb
    friction_coefficient = 0.4
    c_normal = 1e+02
    c_tangential = 1.0e2
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  num_steps = 3
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_linesearch_monitor'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -mat_mffd_err'
  petsc_options_value = 'lu       NONZERO               1e-15                   1e-6'
  l_max_its = 30
  nl_max_its = 20
  line_search = 'none'
  nl_abs_tol = 5e-10
  num_grids = 5
  snesmf_reuse_base = false
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  [exo]
    type = Exodus
    sync_times = '15'
    sync_only = true
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [num_nl]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nl
  []
  [contact]
    type = ContactDOFSetSize
    variable = contact_normal_lm
    subdomain = '3'
    execute_on = 'nonlinear timestep_end'
  []
[]
(test/tests/mortar/continuity-2d-non-conforming/sequencing-stateful-soln-continuity.i)
[Mesh]
  second_order = true
  [file]
    type = FileMeshGenerator
    file = nodal_normals_test_offset_nonmatching_gap.e
  []
  [./primary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = '20'
  [../]
  [./secondary]
    input = primary
    type = LowerDBlockFromSidesetGenerator
    sidesets = '1'
    new_block_id = '10'
  [../]
[]
[Variables]
  [./T]
    block = '1 2'
    order = SECOND
  [../]
  [./lambda]
    block = '10'
  [../]
[]
[AuxVariables]
  [ssm]
    order = CONSTANT
    family = MONOMIAL
    block = '1 2'
  []
[]
[BCs]
  [./neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln
    variable = T
    boundary = '3 4 5 6 7 8'
  [../]
[]
[Kernels]
  [./conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  [../]
  [./sink]
    type = Reaction
    variable = T
    block = '1 2'
  [../]
  [./forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  [../]
[]
[AuxKernels]
  [ssm]
    type = MaterialRealAux
    variable = ssm
    property = diffusivity
    block = '1 2'
  []
[]
[Materials]
  [./ssm]
    type = SpatialStatefulMaterial
    block = '1 2'
  [../]
[]
[Functions]
  [./forcing_function]
    type = ParsedFunction
    expression= '-4 + x^2 + y^2'
  [../]
  [./exact_soln]
    type = ParsedFunction
    expression= 'x^2 + y^2'
  [../]
[]
[Debug]
  show_var_residual_norms = 1
[]
# This is the consumer of material properties, through its default diffusivity parameters
[Constraints]
  [./mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = 20
    secondary_subdomain = 10
    variable = lambda
    secondary_variable = T
  [../]
[]
[Preconditioning]
  [./smp]
    type = SMP
    full = true
  [../]
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  nl_abs_tol = 1e-12
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
  num_grids = 2
[]
[Outputs]
  exodus = true
[]
[Adaptivity]
  steps = 1
  marker = uniform
  [Markers]
    [uniform]
      type = UniformMarker
      mark = refine
    []
  []
[]
(test/tests/meshgenerators/file_mesh_generator/exodus_file_mesh_with_id.i)
[Mesh]
  [material_id_mesh]
    type = FileMeshGenerator
    file = mesh_with_material_id.e
    exodus_extra_element_integers = material_id
  []
[]
[AuxVariables]
  [material_id]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [set_material_id]
    type = ExtraElementIDAux
    variable = material_id
    extra_id_name = material_id
  []
[]
[Problem]
  kernel_coverage_check = false
  solve = false
[]
[Executioner]
  type = Steady
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_lowerd_exists.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[MortarGapHeatTransfer]
  [mortar_heat_transfer]
    temperature = temp
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    boundary = 100
    use_displaced_mesh = true
    gap_conductivity = 0.02
    primary_boundary = 100
    secondary_boundary = 101
# We already have mortar lower-dimensional domains and do not need the action
# to create them for us. It will reuse those and define variables and constraints on
# the existing appended meshes.
    primary_subdomain = 'primary_lower'
    secondary_subdomain = 'secondary_lower'
    gap_flux_options = 'CONDUCTION RADIATION'
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  csv = true
  [exodus]
    type = Exodus
    show = 'temp'
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/1d.i)
# 1D strain controlled test
[GlobalParams]
  displacements = 'disp_x'
  large_kinematics = true
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '1d.exo'
  []
  [ss]
    type = SideSetsFromPointsGenerator
    input = base
    points = '-1 0 0
               7 0 0'
    new_boundary = 'left right'
  []
[]
[Variables]
  [disp_x]
  []
  [hvar]
    family = SCALAR
    order = FIRST
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
[]
[Functions]
  [func_stress]
    type = ParsedFunction
    expression = '400*t'
  []
  [func_strain]
    type = ParsedFunction
    expression = '4.0e-1*t'
  []
[]
[BCs]
  [Periodic]
    [all]
      variable = disp_x
      auto_direction = 'x'
    []
  []
  [centerfix_x]
    type = DirichletBC
    boundary = "fixme"
    variable = disp_x
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = default
  automatic_scaling = true
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 15
  nl_rel_tol = 1e-6
  nl_abs_tol = 1e-8
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  exodus = false
  csv = true
[]
(test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer1.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = multiblock.e
  []
  [./extrude]
    type = MeshExtruderGenerator
    input = fmg
    num_layers = 6
    extrusion_vector = '0 0 2'
    bottom_sideset = 'new_bottom'
    top_sideset = 'new_top'
    # Remap layers
    existing_subdomains = '1 2 5'
    layers = '1 3 5'
    new_ids = '10 12 15
               30 32 35
               50 52 55'
  [../]
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
[]
[BCs]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = 'new_bottom'
    value = 0
  [../]
  [./top]
    type = DirichletBC
    variable = u
    boundary = 'new_top'
    value = 1
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_boundary_swap.i)
[Mesh]
  # mesh_2d.e is a mesh generated by ConcentricCircleMeshGenerator.
  # This mesh contains two circular subdomains (blocks 1 and 2) and a square background subdomain (block 3).
  # The four sides of the square background regions are named left, right, top and bottom respectively.
  # Two sets of element extra integers are also assigned.
  [fmg]
    type = FileMeshGenerator
    file = mesh_2d.e
  []
  [extrude]
    type = AdvancedExtruderGenerator
    input = fmg
    heights = '1 2 3'
    num_layers = '1 2 1'
    direction = '0 0 1'
    bottom_boundary = '100'
    top_boundary = '200'
    subdomain_swaps = '1 11 2 12 3 13;
                       1 21 2 22 3 23;
                       1 31 2 32 3 33'
    boundary_swaps = '1 11 2 12;
                      3 23 4 24;
                      1 31 2 32 3 33 4 34'
  []
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-strain.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = false
  constraint_types = 'strain none none strain strain none strain strain strain'
  targets = 'strain11 strain12 strain22 strain13 strain23 strain33'
  macro_gradient = hvar
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = SIXTH
  []
[]
[ICs]
  [disp_x]
    type = RandomIC
    variable = disp_x
    min = -0.1
    max = 0.1
  []
  [disp_y]
    type = RandomIC
    variable = disp_y
    min = -0.1
    max = 0.1
  []
  [disp_z]
    type = RandomIC
    variable = disp_z
    min = -0.1
    max = 0.1
  []
  [hvar]
    type = ScalarConstantIC
    variable = hvar
    value = 0.1
  []
[]
[AuxVariables]
  [sxx]
    family = MONOMIAL
    order = CONSTANT
  []
  [syy]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxy]
    family = MONOMIAL
    order = CONSTANT
  []
  [szz]
    family = MONOMIAL
    order = CONSTANT
  []
  [syz]
    family = MONOMIAL
    order = CONSTANT
  []
  [sxz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exx]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyy]
    family = MONOMIAL
    order = CONSTANT
  []
  [exy]
    family = MONOMIAL
    order = CONSTANT
  []
  [ezz]
    family = MONOMIAL
    order = CONSTANT
  []
  [eyz]
    family = MONOMIAL
    order = CONSTANT
  []
  [exz]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [sxx]
    type = RankTwoAux
    variable = sxx
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [syy]
    type = RankTwoAux
    variable = syy
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [sxy]
    type = RankTwoAux
    variable = sxy
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [zz]
    type = RankTwoAux
    variable = szz
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [syz]
    type = RankTwoAux
    variable = syz
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [sxz]
    type = RankTwoAux
    variable = sxz
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [exx]
    type = RankTwoAux
    variable = exx
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 0
  []
  [eyy]
    type = RankTwoAux
    variable = eyy
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 1
  []
  [exy]
    type = RankTwoAux
    variable = exy
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 1
  []
  [ezz]
    type = RankTwoAux
    variable = ezz
    rank_two_tensor = mechanical_strain
    index_i = 2
    index_j = 2
  []
  [eyz]
    type = RankTwoAux
    variable = eyz
    rank_two_tensor = mechanical_strain
    index_i = 1
    index_j = 2
  []
  [exz]
    type = RankTwoAux
    variable = exz
    rank_two_tensor = mechanical_strain
    index_i = 0
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '4.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-2*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Postprocessors]
  [sxx]
    type = ElementAverageValue
    variable = sxx
    execute_on = 'initial timestep_end'
  []
  [syy]
    type = ElementAverageValue
    variable = syy
    execute_on = 'initial timestep_end'
  []
  [sxy]
    type = ElementAverageValue
    variable = sxy
    execute_on = 'initial timestep_end'
  []
  [szz]
    type = ElementAverageValue
    variable = szz
    execute_on = 'initial timestep_end'
  []
  [syz]
    type = ElementAverageValue
    variable = syz
    execute_on = 'initial timestep_end'
  []
  [sxz]
    type = ElementAverageValue
    variable = sxz
    execute_on = 'initial timestep_end'
  []
  [exx]
    type = ElementAverageValue
    variable = exx
    execute_on = 'initial timestep_end'
  []
  [eyy]
    type = ElementAverageValue
    variable = eyy
    execute_on = 'initial timestep_end'
  []
  [exy]
    type = ElementAverageValue
    variable = exy
    execute_on = 'initial timestep_end'
  []
  [ezz]
    type = ElementAverageValue
    variable = ezz
    execute_on = 'initial timestep_end'
  []
  [eyz]
    type = ElementAverageValue
    variable = eyz
    execute_on = 'initial timestep_end'
  []
  [exz]
    type = ElementAverageValue
    variable = exz
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  #automatic_scaling = true
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 0.2
[]
[Outputs]
  exodus = false
  csv = false
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/3d.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = NINTH
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-4.0e-2*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain32]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain31]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-2*t'
  []
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress33]
    type = ParsedFunction
    expression = '8.0e2*t'
  []
  [stress23]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress13]
    type = ParsedFunction
    expression = '-7.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress32]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress31]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress21]
    type = ParsedFunction
    expression = '-1.5e2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  csv = true
[]
(test/tests/vectorpostprocessors/extra_id_integral/extra_id_vpp.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'extra_id_vpp.e'
    use_for_exodus_restart = true
    exodus_extra_element_integers = 'pin_id assembly_id'
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [value1]
    order = FIRST
    initial_from_file_var = value1
  []
  [value2]
    order = FIRST
    initial_from_file_var = value2
  []
[]
[Materials]
  [mat1]
    type = GenericConstantMaterial
    prop_names = 'mat1'
    prop_values = 1
  []
  [mat2]
    type = GenericConstantMaterial
    prop_names = 'mat2'
    prop_values = 2
  []
[]
[VectorPostprocessors]
  [integral]
    type = ExtraIDIntegralVectorPostprocessor
    variable = 'value1'
    id_name = 'assembly_id'
  []
[]
[Outputs]
  exodus = false
  csv = true
  execute_on = timestep_end
[]
(modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_various_actions.i)
[GlobalParams]
  volumetric_locking_correction = false
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = three_hexagons_coarse.e
  []
  patch_size = 10
  patch_update_strategy = auto
[]
[Functions]
  [pressure]
    type = PiecewiseLinear
    x = '0 10'
    y = '0 0.05'
    scale_factor = 1
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    add_variables = true
    strain = FINITE
    block = '1 2 3'
    planar_formulation = PLANE_STRAIN
  []
[]
[BCs]
  [fix_x]
    type = DirichletBC
    variable = 'disp_x'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [fix_y]
    type = DirichletBC
    variable = 'disp_y'
    boundary = '1001 1002 2001 2002 3001 3002'
    value = 0.0
  []
  [Pressure]
    [hex1_pressure]
      boundary = '110'
      function = pressure
      factor = 80
    []
    [hex2_pressure]
      boundary = '210'
      function = pressure
      factor = 50
    []
  []
[]
[Contact]
  [contact_pressure_a]
    formulation = penalty
    model = frictionless
    primary = '201'
    secondary = '102'
    penalty = 2e+03
    normalize_penalty = true
  []
  [contact_pressure_b]
    formulation = penalty
    model = frictionless
    primary = '301'
    secondary = '102'
    penalty = 2e+03
    normalize_penalty = true
  []
  [contact_pressure_c]
    formulation = penalty
    model = frictionless
    primary = '201'
    secondary = '301'
    penalty = 2e+03
    normalize_penalty = true
  []
[]
[Materials]
  [hex_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1 2 3'
    youngs_modulus = 1e4
    poissons_ratio = 0.0
  []
  [hex_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1 2 3'
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_type '
  petsc_options_value = 'lu       '
  line_search = 'none'
  nl_abs_tol = 1e-6
  nl_rel_tol = 1e-10
  l_max_its = 20
  dt = 0.5
  end_time = 4.0
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_conduction_UOs_function.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  allow_renumbering = false
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  []
[]
[Functions]
  [gc_function]
    type = PiecewiseLinear
    x = '-10000   10000'
    y = '0.02 0.02'
  []
[]
[Materials]
  [left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 0.01
    specific_heat = 1
  []
  [right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 0.005
    specific_heat = 1
  []
[]
[Kernels]
  [hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  []
  [hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  []
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[MortarGapHeatTransfer]
  [mortar_heat_transfer]
    temperature = temp
    boundary = 100
    use_displaced_mesh = true
    primary_boundary = 100
    secondary_boundary = 101
    user_created_gap_flux_models = 'radiation_uo conduction_uo'
  []
[]
[UserObjects]
  [radiation_uo]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 100
    primary_emissivity = 1.0
    secondary_emissivity = 1.0
    use_displaced_mesh = true
  []
  [conduction_uo]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 100
    gap_conductivity_function = gc_function
    gap_conductivity_function_variable = temp
    gap_conductivity = 1.0
    use_displaced_mesh = true
  []
[]
[BCs]
  [left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 100
  []
  [right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  []
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  []
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
  nl_abs_tol = 1.0e-10
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '100 101'
    variable = 'temp'
  []
[]
[Outputs]
  csv = true
  [exodus]
    type = Exodus
    show = 'temp'
  []
[]
(modules/solid_mechanics/test/tests/shell/static/tank_shell_rotated.i)
# Test for Pressure on shell elements
# An inclined cylindrical tank (length:3m) with a wall thickness of t=0.03 m and a radius of 0.5m is subjected to an internal presure of p=40 MPa.
# The lower part of the cylinder is constrained in all directions
# Theorically, assuming a thin_walled cylinder t/r <0.1, the hoop stress is sigma_t=p*r/t
# Therefore, in-plane force in the circumference of the cylinder is F=sigma_t*t= p*r=0.5*40=20 MN (independent of material properties of the shell)
# Analytical solution for the radial displacement : u=p*r^2/(E*t)=0.00167 m
# We check the axial_force_1 at the upper part of the cylinder (far from the lower boundary to avoid boundary effects)
# The numerical modeling results in axial_force_1 =19.882 MPa (0.6% error) and radial displacement u=0.00165 (1.1% error)
[Mesh]
  [gmg]
    type = FileMeshGenerator
    file = tank_shell_rotated.msh
  []
[]
[Variables]
  [disp_x]
    order = FIRST
    family = LAGRANGE
  []
  [disp_y]
    order = FIRST
    family = LAGRANGE
  []
  [disp_z]
    order = FIRST
    family = LAGRANGE
  []
  [rot_x]
    order = FIRST
    family = LAGRANGE
  []
  [rot_y]
    order = FIRST
    family = LAGRANGE
  []
[]
[AuxVariables]
  [axial_force_1]
    order = CONSTANT
    family = MONOMIAL
  []
[]
[AuxKernels]
  [axial_force_1]
    type = ShellResultantsAux
    variable = axial_force_1
    stress_resultant = axial_force_1
    thickness = 0.03
    through_thickness_order = SECOND
    execute_on = TIMESTEP_END
  []
[]
[BCs]
  [simply_support_x]
    type = DirichletBC
    variable = disp_x
    boundary = 'lower_circle'
    value = 0.0
  []
  [simply_support_y]
    type = DirichletBC
    variable = disp_y
    boundary = 'lower_circle'
    value = 0.0
  []
  [simply_support_z]
    type = DirichletBC
    variable = disp_z
    boundary = 'lower_circle'
    value = 0.0
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options = '-snes_ksp_ew'
  # best overall
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = ' lu       mumps'
  line_search = 'none'
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-13
  dt = 1
  dtmin = 1
  end_time = 1
[]
[Kernels]
  [solid_disp_x]
    type = ADStressDivergenceShell
    component = 0
    variable = disp_x
    through_thickness_order = SECOND
  []
  [solid_disp_y]
    type = ADStressDivergenceShell
    component = 1
    variable = disp_y
    through_thickness_order = SECOND
  []
  [solid_disp_z]
    type = ADStressDivergenceShell
    component = 2
    variable = disp_z
    through_thickness_order = SECOND
  []
  [solid_rot_x]
    type = ADStressDivergenceShell
    component = 3
    variable = rot_x
    through_thickness_order = SECOND
  []
  [solid_rot_y]
    type = ADStressDivergenceShell
    component = 4
    variable = rot_y
    through_thickness_order = SECOND
  []
  [load_x]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_x
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
  [load_y]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_y
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
  [load_z]
    type = ADDistributedLoadShell
    function = '40'
    variable = disp_z
    project_load_to_normal = true
    displacements = 'disp_x disp_y disp_z'
  []
[]
[Materials]
  [elasticity]
    type = ADComputeIsotropicElasticityTensorShell
    youngs_modulus = 2e5
    poissons_ratio = 0.3
    through_thickness_order = SECOND
  []
  [strain]
    type = ADComputeIncrementalShellStrain
    displacements = 'disp_x disp_y disp_z'
    rotations = 'rot_x rot_y'
    thickness = 0.03
    reference_first_local_direction = ' 1 0 1'
    through_thickness_order = SECOND
  []
  [stress]
    type = ADComputeShellStress
    through_thickness_order = SECOND
  []
[]
[Outputs]
  exodus = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_sphere3D_mortar.i)
sphere_outer_htc = 10 # W/m^2/K
sphere_outer_Tinf = 300 # K
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = sphere3D.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '2'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '3'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Functions]
  [temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  []
[]
[Variables]
  [temp]
    initial_condition = 500
  []
  [lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[AuxVariables]
  # [gap_conductance]
  #   order = CONSTANT
  #   family = MONOMIAL
  # []
  [power_density]
    block = 'fuel'
    initial_condition = 50e3
  []
[]
[Kernels]
  [heat_conduction]
    type = HeatConduction
    variable = temp
    block = '1 2'
  []
  [heat_source]
    type = CoupledForce
    variable = temp
    block = 'fuel'
    v = power_density
  []
[]
# [AuxKernels]
#   [gap_cond]
#     type = MaterialRealAux
#     property = gap_conductance
#     variable = gap_conductance
#     boundary = 2
#   []
# []
[Materials]
  [heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 34.6
  []
[]
[UserObjects]
  [radiation]
    type = GapFluxModelRadiation
    temperature = temp
    boundary = 2
    primary_emissivity = 0.0
    secondary_emissivity = 0.0
  []
  [conduction]
    type = GapFluxModelConduction
    temperature = temp
    boundary = 2
    gap_conductivity = 5.0
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    primary_boundary = 3
    primary_subdomain = 10000
    secondary_boundary = 2
    secondary_subdomain = 10001
    gap_flux_models = 'radiation conduction'
    gap_geometry_type = SPHERE
    sphere_origin = '0 0 0'
  []
[]
[BCs]
  [RPV_out_BC] # k \nabla T = h (T- T_inf) at RPV outer boundary
    type = ConvectiveFluxFunction # (Robin BC)
    variable = temp
    boundary = '4' # outer RPV
    coefficient = ${sphere_outer_htc}
    T_infinity = ${sphere_outer_Tinf}
  []
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
[]
[Outputs]
  exodus = true
  csv = true
  [Console]
    type = Console
  []
[]
[Postprocessors]
  [temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  []
  [temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  []
  [flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  []
  [flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  []
  [ptot]
    type = ElementIntegralVariablePostprocessor
    variable = power_density
    block = 'fuel'
  []
  [sphere_convective_out]
    type = ConvectiveHeatTransferSideIntegral
    T_solid = temp
    boundary = '4' # outer RVP
    T_fluid = ${sphere_outer_Tinf}
    htc = ${sphere_outer_htc}
  []
  [heat_balance] # should be equal to 0 upon convergence
    type = ParsedPostprocessor
    expression = '(sphere_convective_out - ptot) / ptot'
    pp_names = 'sphere_convective_out ptot'
  []
[]
[VectorPostprocessors]
  [NodalTemperature]
    type = NodalValueSampler
    sort_by = id
    boundary = '2 3'
    variable = temp
  []
[]
(modules/navier_stokes/test/tests/finite_volume/pins/channel-flow/hydraulic-separators/separator-energy-nonorthogonal.i)
# This test is designed to check for energy conservation
# in separated channels which are described using a nonorthogonal mesh.
# The two inlet temperatures should be preserved at the outlets.
rho=1.1
mu=0.6
k=2.1
cp=5.5
advected_interp_method='upwind'
velocity_interp_method='rc'
[Mesh]
  [file]
    type = FileMeshGenerator
    file = diverging.msh
  []
  [mirror]
    type = SymmetryTransformGenerator
    input = file
    mirror_point = "0 0 0"
    mirror_normal_vector = "1 0 0"
  []
  [stitch]
    type = StitchedMeshGenerator
    inputs = 'file mirror'
    stitch_boundaries_pairs = 'left left'
  []
  [subdomain1]
    type = ParsedSubdomainMeshGenerator
    input = stitch
    combinatorial_geometry = 'x > 0'
    block_id = 1
  []
  [subdomain2]
    type = ParsedSubdomainMeshGenerator
    input = subdomain1
    combinatorial_geometry = 'x < 0'
    block_id = 2
  []
  [separator]
    type = ParsedGenerateSideset
    input = subdomain2
    combinatorial_geometry = 'x > -0.00001 & x < 0.00001'
    replace = true
    new_sideset_name = separator
  []
  [inlet-1]
    type = ParsedGenerateSideset
    input = separator
    combinatorial_geometry = 'y < 0.00001 & x < 0'
    replace = true
    new_sideset_name = inlet-1
  []
  [inlet-2]
    type = ParsedGenerateSideset
    input = inlet-1
    combinatorial_geometry = 'y < 0.00001 & x > 0'
    replace = true
    new_sideset_name = inlet-2
  []
  [outlet-1]
    type = ParsedGenerateSideset
    input = inlet-2
    combinatorial_geometry = 'y > 20.999999 & x < 0'
    replace = true
    new_sideset_name = outlet-1
  []
  [outlet-2]
    type = ParsedGenerateSideset
    input = outlet-1
    combinatorial_geometry = 'y > 20.999999 & x > 0'
    replace = true
    new_sideset_name = outlet-2
  []
  uniform_refine = 1
[]
[GlobalParams]
  rhie_chow_user_object = 'rc'
  porosity = porosity
[]
[UserObjects]
  [rc]
    type = PINSFVRhieChowInterpolator
    u = superficial_vel_x
    v = superficial_vel_y
    pressure = pressure
  []
[]
[Variables]
  [superficial_vel_x]
    type = PINSFVSuperficialVelocityVariable
  []
  [superficial_vel_y]
    type = PINSFVSuperficialVelocityVariable
    initial_condition = 0.1
  []
  [pressure]
    type = BernoulliPressureVariable
    u = superficial_vel_x
    v = superficial_vel_y
    rho = ${rho}
  []
  [T_fluid]
    type = INSFVEnergyVariable
    initial_condition = 300
  []
[]
[FVKernels]
  [mass]
    type = PINSFVMassAdvection
    variable = pressure
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
    rho = ${rho}
  []
  [u_advection]
    type = PINSFVMomentumAdvection
    variable = superficial_vel_x
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
    rho = ${rho}
    momentum_component = 'x'
  []
  [u_viscosity]
    type = PINSFVMomentumDiffusion
    variable = superficial_vel_x
    momentum_component = 'x'
    mu = ${mu}
  []
  [u_pressure]
    type = PINSFVMomentumPressure
    variable = superficial_vel_x
    pressure = pressure
    momentum_component = 'x'
  []
  [v_advection]
    type = PINSFVMomentumAdvection
    variable = superficial_vel_y
    advected_interp_method = ${advected_interp_method}
    velocity_interp_method = ${velocity_interp_method}
    rho = ${rho}
    momentum_component = 'y'
  []
  [v_viscosity]
    type = PINSFVMomentumDiffusion
    variable = superficial_vel_y
    momentum_component = 'y'
    mu = ${mu}
  []
  [v_pressure]
    type = PINSFVMomentumPressure
    variable = superficial_vel_y
    pressure = pressure
    momentum_component = 'y'
  []
  [temp_conduction]
    type = FVDiffusion
    coeff = ${k}
    variable = T_fluid
  []
  [temp_advection]
    type = INSFVEnergyAdvection
    variable = T_fluid
  []
[]
[FVBCs]
  [inlet-u]
    type = INSFVInletVelocityBC
    boundary = 'inlet-1 inlet-2'
    variable = superficial_vel_x
    functor = '0.0'
  []
  [inlet-v-1]
    type = INSFVInletVelocityBC
    boundary = 'inlet-1'
    variable = superficial_vel_y
    functor = 0.1
  []
  [inlet-v-2]
    type = INSFVInletVelocityBC
    boundary = 'inlet-2'
    variable = superficial_vel_y
    functor = 0.2
  []
  [inlet-T-1]
    type = FVDirichletBC
    variable = T_fluid
    boundary = 'inlet-1'
    value = 310
  []
  [inlet-T-2]
    type = FVDirichletBC
    variable = T_fluid
    boundary = 'inlet-2'
    value = 350
  []
  [walls-u]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = superficial_vel_x
    momentum_component = 'x'
  []
  [walls-v]
    type = INSFVNaturalFreeSlipBC
    boundary = 'right'
    variable = superficial_vel_y
    momentum_component = 'y'
  []
  [separator-u]
    type = INSFVVelocityHydraulicSeparatorBC
    boundary = 'separator'
    variable = superficial_vel_x
    momentum_component = 'x'
  []
  [separator-v]
    type = INSFVVelocityHydraulicSeparatorBC
    boundary = 'separator'
    variable = superficial_vel_y
    momentum_component = 'y'
  []
  [separator-p]
    type = INSFVScalarFieldSeparatorBC
    boundary = 'separator'
    variable = pressure
  []
  [separator-T]
    type = INSFVScalarFieldSeparatorBC
    boundary = 'separator'
    variable = T_fluid
  []
  [outlet_p]
    type = INSFVOutletPressureBC
    boundary = 'outlet-2 outlet-1'
    variable = pressure
    function = 0.4
  []
[]
[FunctorMaterials]
  [porosity-1]
    type = ADGenericFunctorMaterial
    prop_names = 'porosity'
    prop_values = '1.0'
    block = '1'
  []
  [porosity-2]
    type = ADGenericFunctorMaterial
    prop_names = 'porosity'
    prop_values = '0.5'
    block = '2'
  []
  [speed]
    type = PINSFVSpeedFunctorMaterial
    superficial_vel_x = superficial_vel_x
    superficial_vel_y = superficial_vel_y
    porosity = porosity
  []
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial
    temperature = 'T_fluid'
    rho = ${rho}
    cp = ${cp}
  []
[]
[Executioner]
  type = Steady
  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = ' lu       NONZERO               1e-10'
  line_search = 'none'
  nl_rel_tol = 1e-10
[]
[Postprocessors]
  [outlet_T1]
    type = SideAverageValue
    variable = 'T_fluid'
    boundary = 'outlet-1'
  []
  [outlet_T2]
    type = SideAverageValue
    variable = 'T_fluid'
    boundary = 'outlet-2'
  []
[]
[Outputs]
  csv = true
  execute_on = final
[]
(test/tests/mortar/mesh_modification/mortar_esm.i)
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 'gold/2blk-conf.msh'
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    input = file
    sidesets = 'lower_half_internal_boundary'
    new_block_id = '101'
    new_block_name = 'secondary_lower'
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    input = secondary
    sidesets = 'upper_half_internal_boundary'
    new_block_id = '102'
    new_block_name = 'primary_lower'
  []
  patch_update_strategy = ITERATION
  # for consistent CSV output
  allow_renumbering = false
  second_order = true
[]
[GlobalParams]
  use_displaced_mesh = false
  displacements = 'disp_x disp_y'
[]
# Pre-declare future subdomain
[Mesh]
  add_subdomain_names = 'null null_lower'
  add_subdomain_ids = '3 103'
[]
[Problem]
  kernel_coverage_check = false
[]
[MeshModifiers]
  # Change the subdomains on every time step, starting from the bottom
  # See 'entering_from_left' for the variable guiding the subdomain changes
  [deactivate_regular_elems]
    type = CoupledVarThresholdElementSubdomainModifier
    coupled_var = 'entering_from_left'
    criterion_type = 'ABOVE'
    threshold = 0.5
    block = '1 2'
    # subdomain 3 is inactive, no variables defined on it
    subdomain_id = 3
    moving_boundary_subdomain_pairs = '2 1; 1 2; 1; 2'
    moving_boundaries = 'upper_half_internal_boundary lower_half_internal_boundary lower_half_external_boundary upper_half_external_boundary'
    execute_on = 'INITIAL TIMESTEP_BEGIN'
    execution_order_group = '0'
  []
  [deactivate_lowerD_elems]
    type = CoupledVarThresholdElementSubdomainModifier
    coupled_var = 'entering_from_left'
    criterion_type = 'ABOVE'
    threshold = 0.5
    block = '101 102'
    # subdomain 103 is inactive, no variables defined on it
    subdomain_id = 103
    execute_on = 'INITIAL TIMESTEP_BEGIN'
    execution_order_group = '1'
  []
[]
[Functions]
  [exact_sln]
    type = ParsedFunction
    expression = y
  []
  [ffn]
    type = ParsedFunction
    expression = 0
  []
[]
[Variables]
  [u]
    order = SECOND
    family = LAGRANGE
    block = 'lower_half upper_half'
  []
  [lambda]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = 'u'
    block = 'lower_half upper_half'
  []
  [ffn]
    type = BodyForce
    variable = 'u'
    function = 'ffn'
    block = 'lower_half upper_half'
  []
[]
[Constraints]
  [equal]
    type = EqualValueConstraint
    variable = 'lambda'
    secondary_variable = 'u'
    primary_boundary = 'upper_half_internal_boundary'
    primary_subdomain = 'primary_lower'
    secondary_boundary = 'lower_half_internal_boundary'
    secondary_subdomain = 'secondary_lower'
  []
[]
[AuxVariables]
  [entering_from_left]
    order = CONSTANT
    family = MONOMIAL
    [AuxKernel]
      type = ParsedAux
      expression = 'if(t > x * 4, 1, 0)'
      use_xyzt = true
      # both full-dimensional and low-dimensional should change subdomains
      block = 'lower_half upper_half secondary_lower primary_lower'
      execute_on = 'INITIAL TIMESTEP_BEGIN'
    []
  []
  [disp_x]
    order = SECOND
  []
  [disp_y]
    order = SECOND
  []
[]
[BCs]
  [all]
    type = FunctionDirichletBC
    variable = 'u'
    boundary = 'lower_half_external_boundary upper_half_external_boundary'
    function = 'exact_sln'
  []
[]
[Postprocessors]
  [l2_error]
    type = ElementL2Error
    variable = 'u'
    function = 'exact_sln'
    block = 'lower_half upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_lower_half]
    type = VolumePostprocessor
    block = 'lower_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_upper_half]
    type = VolumePostprocessor
    block = 'upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
  [vol_null]
    type = VolumePostprocessor
    block = 'null'
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
[Preconditioning]
  [fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
    petsc_options_iname = '-pc_type -pc_factor_shift_type'
    petsc_options_value = 'lu NONZERO'
  []
[]
[Executioner]
  type = Transient
  num_steps = 3
  nl_abs_tol = 1e-12
  nl_rel_tol = 1e-11
  dtmin = 1
[]
# Testing considerations:
# exodus output does not like overlapping elements
# block-restricted exodus would not handle the changing mesh
# csv nodal-sampling gets affected by node-renumbering
# But this works!
[Outputs]
  csv = true
[]
[Positions]
  [functors]
    type = FunctorExtremaPositions
    functor = 'u'
    extrema_type = 'MAX'
    # only 8 nodes on final step
    num_extrema = 8
    block = 'lower_half upper_half'
    execute_on = 'INITIAL TIMESTEP_END'
  []
[]
(test/tests/meshgenerators/block_to_mesh_converter_generator/conv_multiblock.i)
[Mesh]
  inactive = 'refine'
  [file]
    type = FileMeshGenerator
    file = 3dmultiblock.e
  []
  [blockToMesh]
    type = BlockToMeshConverterGenerator
    input = file
    target_blocks = "1 12 2 3 5 6"
  []
  [refine]
    type = RefineBlockGenerator
    input = file
    block = '12'
    refinement = '1'
  []
[]
(test/tests/meshgenerators/sidesets_by_normals_generator/simple.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = twoblocks.e
  []
  [./generate_sidesets]
    type = AllSideSetsByNormalsGenerator
    input = fmg
  []
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/neml2/large_neml.i)
constraint_types = 'strain strain strain stress stress stress stress strain stress'
targets = 'strain11 zero zero zero zero zero zero zero zero'
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[BCs]
  [fix1_x]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_x
    vector_tags = residual
  []
[]
[BCs]
  [fix1_y]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_y
    vector_tags = residual
  []
[]
[BCs]
  [fix1_z]
    type = DirichletBC
    boundary = fix_all
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_z
    vector_tags = residual
  []
[]
[BCs]
  [fix2_x]
    type = DirichletBC
    boundary = fix_xy
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_x
    vector_tags = residual
  []
[]
[BCs]
  [fix2_y]
    type = DirichletBC
    boundary = fix_xy
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_y
    vector_tags = residual
  []
[]
[BCs]
  [fix3_z]
    type = DirichletBC
    boundary = fix_z
    displacements = 'disp_x disp_y disp_z'
    matrix_tags = 'system time'
    value = 0
    variable = disp_z
    vector_tags = residual
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = 't'
  []
[]
[Functions]
  [zero]
    type = ConstantFunction
    value = 0
  []
[]
[Materials]
  [convert_strain]
    type = RankTwoTensorToSymmetricRankTwoTensor
    from = mechanical_strain
    outputs = none
    to = neml2_strain
  []
[]
[Materials]
  [stress]
    type = ComputeLagrangianObjectiveCustomSymmetricStress
    custom_small_jacobian = neml2_jacobian
    custom_small_stress = neml2_stress
    large_kinematics = true
    outputs = none
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
    constraint_types = ${constraint_types}
    targets = ${targets}
    macro_gradient = hvar
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = true
  []
[]
[Materials]
  [material_neml2_to_moose_stress]
    type = NEML2ToMOOSESymmetricRankTwoTensorMaterialProperty
    block = ''
    from_neml2 = state/S
    neml2_executor = neml2_model_all
    outputs = none
    to_moose = neml2_stress
  []
  [material_neml2_to_moose_jacobian]
    type = NEML2ToMOOSESymmetricRankFourTensorMaterialProperty
    block = ''
    from_neml2 = state/S
    neml2_executor = neml2_model_all
    neml2_input_derivative = forces/E
    outputs = none
    to_moose = neml2_jacobian
  []
[]
[UserObjects]
  [UO_strain_moose_to_neml2]
    type = MOOSESymmetricRankTwoTensorMaterialPropertyToNEML2
    block = ''
    execute_on = 'INITIAL LINEAR NONLINEAR'
    from_moose = neml2_strain
    to_neml2 = forces/E
  []
  [neml2_index_model_all]
    type = NEML2BatchIndexGenerator
    block = ''
    execute_on = 'INITIAL LINEAR NONLINEAR'
  []
  [neml2_model_all]
    type = NEML2ModelExecutor
    batch_index_generator = neml2_index_model_all
    device = cpu
    execute_on = 'INITIAL LINEAR NONLINEAR'
    gatherers = UO_strain_moose_to_neml2
    input = neml2_elastic.i
    model = model
    param_gatherers = ''
    execution_order_group = 1
  []
[]
[Variables]
  [disp_x]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
  [disp_y]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
  [disp_z]
    type = MooseVariable
    family = LAGRANGE
    order = FIRST
  []
[]
[AuxKernels]
  [pk1_stress_xx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_xx
    variable = pk1_stress_xx
  []
  [pk1_stress_xy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_xy
    variable = pk1_stress_xy
  []
  [pk1_stress_xz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_xz
    variable = pk1_stress_xz
  []
  [pk1_stress_yx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_yx
    variable = pk1_stress_yx
  []
  [pk1_stress_yy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_yy
    variable = pk1_stress_yy
  []
  [pk1_stress_yz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_yz
    variable = pk1_stress_yz
  []
  [pk1_stress_zx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_zx
    variable = pk1_stress_zx
  []
  [pk1_stress_zy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_zy
    variable = pk1_stress_zy
  []
  [pk1_stress_zz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = pk1_stress_zz
    variable = pk1_stress_zz
  []
  [deformation_gradient_xx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xx
    variable = deformation_gradient_xx
  []
  [deformation_gradient_xy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xy
    variable = deformation_gradient_xy
  []
  [deformation_gradient_xz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_xz
    variable = deformation_gradient_xz
  []
  [deformation_gradient_yx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yx
    variable = deformation_gradient_yx
  []
  [deformation_gradient_yy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yy
    variable = deformation_gradient_yy
  []
  [deformation_gradient_yz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_yz
    variable = deformation_gradient_yz
  []
  [deformation_gradient_zx_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zx
    variable = deformation_gradient_zx
  []
  [deformation_gradient_zy_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zy
    variable = deformation_gradient_zy
  []
  [deformation_gradient_zz_all]
    type = MaterialRealAux
    block = ''
    execute_on = TIMESTEP_END
    property = deformation_gradient_zz
    variable = deformation_gradient_zz
  []
[]
[AuxVariables]
  [pk1_stress_xx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_xz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_yz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [pk1_stress_zz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_xz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_yz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zx]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zy]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
  [deformation_gradient_zz]
    type = MooseVariableConstMonomial
    family = MONOMIAL
    order = CONSTANT
  []
[]
[Kernels]
  [TM_all0]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 0
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = true
    stabilize_strain = false
    variable = disp_x
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
  [TM_all1]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 1
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = true
    stabilize_strain = false
    variable = disp_y
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
  [TM_all2]
    type = HomogenizedTotalLagrangianStressDivergence
    component = 2
    displacements = 'disp_x disp_y disp_z'
    large_kinematics = true
    stabilize_strain = false
    variable = disp_z
    macro_var = hvar
    constraint_types = ${constraint_types}
    targets = ${targets}
  []
[]
[Materials]
  [pk1_stress_xx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 0
    outputs = none
    property_name = pk1_stress_xx
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_xy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 1
    outputs = none
    property_name = pk1_stress_xy
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_xz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 2
    outputs = none
    property_name = pk1_stress_xz
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_yx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 0
    outputs = none
    property_name = pk1_stress_yx
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_yy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 1
    outputs = none
    property_name = pk1_stress_yy
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_yz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 2
    outputs = none
    property_name = pk1_stress_yz
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_zx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 0
    outputs = none
    property_name = pk1_stress_zx
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_zy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 1
    outputs = none
    property_name = pk1_stress_zy
    rank_two_tensor = pk1_stress
  []
  [pk1_stress_zz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 2
    outputs = none
    property_name = pk1_stress_zz
    rank_two_tensor = pk1_stress
  []
  [deformation_gradient_xx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 0
    outputs = none
    property_name = deformation_gradient_xx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_xy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 1
    outputs = none
    property_name = deformation_gradient_xy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_xz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 0
    index_j = 2
    outputs = none
    property_name = deformation_gradient_xz
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 0
    outputs = none
    property_name = deformation_gradient_yx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 1
    outputs = none
    property_name = deformation_gradient_yy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_yz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 1
    index_j = 2
    outputs = none
    property_name = deformation_gradient_yz
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zx_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 0
    outputs = none
    property_name = deformation_gradient_zx
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zy_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 1
    outputs = none
    property_name = deformation_gradient_zy
    rank_two_tensor = deformation_gradient
  []
  [deformation_gradient_zz_all]
    type = RankTwoCartesianComponent
    block = ''
    index_i = 2
    index_j = 2
    outputs = none
    property_name = deformation_gradient_zz
    rank_two_tensor = deformation_gradient
  []
[]
[Variables]
  [hvar]
    type = MooseVariableScalar
    family = SCALAR
    order = NINTH
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  residual_and_jacobian_together = true
  solve_type = 'newton'
  line_search = 'none'
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 20
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  [out]
    type = Exodus
  []
[]
[Postprocessors]
  [time]
    type = TimePostprocessor
    execute_on = 'INITIAL TIMESTEP_BEGIN'
  []
  [mCS_xx]
    type     = ElementAverageValue
    variable = pk1_stress_xx
  []
  [mCS_yy]
    type     = ElementAverageValue
    variable = pk1_stress_yy
  []
  [mCS_zz]
    type     = ElementAverageValue
    variable = pk1_stress_zz
  []
  [mCS_xy]
    type     = ElementAverageValue
    variable = pk1_stress_xy
  []
  [mCS_xz]
    type     = ElementAverageValue
    variable = pk1_stress_xz
  []
  [mCS_yx]
    type     = ElementAverageValue
    variable = pk1_stress_yx
  []
  [mCS_yz]
    type     = ElementAverageValue
    variable = pk1_stress_yz
  []
  [mCS_zy]
    type     = ElementAverageValue
    variable = pk1_stress_zy
  []
  [mCS_zx]
    type     = ElementAverageValue
    variable = pk1_stress_zx
  []
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_polycrystal.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = poly2.msh
    #parallel_type = replicated
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
    split_interface = true
  []
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_tight.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = cond_number.e
  []
  allow_renumbering = false
[]
[Problem]
  type = AugmentedLagrangianContactFEProblem
  extra_tag_vectors = 'ref'
  maximum_lagrangian_update_iterations = 1000
[]
[AuxVariables]
  [penalty_normal_pressure]
  []
  [penalty_frictional_pressure]
  []
  [accumulated_slip_one]
  []
  [tangential_vel_one]
  []
  [normal_gap]
  []
  [normal_lm]
  []
  [saved_x]
  []
  [saved_y]
  []
  [active]
  []
  [pid]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic/all]
  strain = FINITE
  add_variables = true
  save_in = 'saved_x saved_y'
  extra_vector_tags = 'ref'
  block = '1 2 3 4 5 6 7'
  generate_output = 'stress_xx stress_yy stress_xy'
[]
[AuxKernels]
  [pid]
    type = ProcessorIDAux
    variable = pid
  []
  [penalty_normal_pressure]
    type = MortarUserObjectAux
    variable = penalty_normal_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_pressure
    boundary = 3
  []
  [penalty_frictional_pressure]
    type = MortarUserObjectAux
    variable = penalty_frictional_pressure
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_pressure_one
    boundary = 3
  []
  [penalty_tangential_vel_one]
    type = MortarUserObjectAux
    variable = tangential_vel_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = tangential_velocity_one
    boundary = 3
  []
  [penalty_accumulated_slip_one]
    type = MortarUserObjectAux
    variable = accumulated_slip_one
    user_object = penalty_friction_object_al_friction
    contact_quantity = accumulated_slip_one
    boundary = 3
  []
  [normal_lm]
    type = MortarUserObjectAux
    variable = normal_lm
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_lm
    boundary = 3
  []
  [normal_gap]
    type = MortarUserObjectAux
    variable = normal_gap
    user_object = penalty_friction_object_al_friction
    contact_quantity = normal_gap
    boundary = 3
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
  [num_lin_it]
    type = NumLinearIterations
  []
  [num_nonlin_it]
    type = NumNonlinearIterations
  []
  [cumulative]
    type = CumulativeValuePostprocessor
    postprocessor = num_nonlin_it
  []
  [gap]
    type = SideExtremeValue
    value_type = min
    variable = normal_gap
    boundary = 3
  []
  [num_al]
    type = NumAugmentedLagrangeIterations
  []
  [active_set_size]
    type = NodalSum
    variable = active
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e8
    poissons_ratio = 0.0
  []
  [stuff1_stress]
    type = ComputeFiniteStrainElasticStress
    block = '1'
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff2_stress]
    type = ComputeFiniteStrainElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-ksp_snes_ew'
  petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
  petsc_options_value = ' 201                hypre    boomeramg      8'
  line_search = 'none'
  nl_abs_tol = 1e-12
  nl_rel_tol = 1e-10
  nl_max_its = 150
  l_tol = 1e-05
  l_abs_tol = 1e-13
  start_time = 0.0
  end_time = 0.1 # 1.0
  dt = 0.1
  dtmin = 0.1
  [Predictor]
    type = SimplePredictor
    scale = 1.0
  []
  automatic_scaling = true
  compute_scaling_once = false
  off_diagonals_in_auto_scaling = true
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[VectorPostprocessors]
  [surface]
    type = NodalValueSampler
    use_displaced_mesh = false
    variable = 'disp_x disp_y penalty_normal_pressure penalty_frictional_pressure normal_gap'
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [vectorpp_output]
    type = CSV
    create_final_symlink = true
    execute_on = 'INITIAL TIMESTEP_END FINAL'
  []
[]
[Contact]
  [al_friction]
    formulation = mortar_penalty
    model = coulomb
    primary = '2'
    secondary = '3'
    penalty = 1e7
    penalty_friction = 1e+7
    friction_coefficient = 0.4
    al_penetration_tolerance = 1e-7
    al_incremental_slip_tolerance = 1e-7
    adaptivity_penalty_normal = BUSSETTA
    adaptivity_penalty_friction = FRICTION_LIMIT
    penalty_multiplier = 5
    penalty_multiplier_friction = 5
  []
[]
(test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = unique_id.e
    exodus_extra_element_integers = 'id1 id0'
  []
  [parse_id]
    type = UniqueExtraIDMeshGenerator
    input = fmg
    id_name = 'id1 id0'
    new_id_name = 'parsed_id'
  []
[]
[Executioner]
  type = Steady
[]
[Problem]
  solve = false
[]
[AuxVariables]
  [parsed_id]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [aux_parsed_id]
    type = ExtraElementIDAux
    variable = parsed_id
    extra_id_name = parsed_id
  []
[]
[Outputs]
  exodus = true
  execute_on = timestep_end
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/2d.i)
# 2D with mixed conditions on stress/strain
[GlobalParams]
  displacements = 'disp_x disp_y'
  large_kinematics = true
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '2d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0'
    fixed_normal = true
    new_boundary = 'left right bottom top'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [hvar]
    family = SCALAR
    order = FOURTH
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '4.0e-1*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-2.0e-1*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-1*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-1*t'
  []
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress21]
    type = ParsedFunction
    expression = '-1.5e2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix1"
    variable = disp_y
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix2"
    variable = disp_y
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 30
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  csv = true
[]
(test/tests/meshgenerators/stitch_mesh_generator/stitched_mesh_generator_sameid.i)
[Mesh]
  [fmg_left]
    type = FileMeshGenerator
    file = left.e
  []
  [fmg_center]
    type = FileMeshGenerator
    file = center.e
  []
  [rename_center]
    type = RenameBoundaryGenerator
    input = fmg_center
    old_boundary = 'right'
    new_boundary = 'bazinga'
  []
  [smg]
    type = StitchMeshGenerator
    inputs = 'fmg_left rename_center'
    clear_stitched_boundary_ids = true
    stitch_boundaries_pairs = 'right left'
    parallel_type = 'replicated'
    prevent_boundary_ids_overlap = false
  []
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step08_adaptivity/step8_uniform.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = '../step03_boundary_conditions/mesh_in.e'
  []
  uniform_refine = 0
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Problem]
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Executioner]
  type = Steady # Steady state problem
  solve_type = NEWTON # Perform a Newton solve, uses AD to compute Jacobian terms
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i)
#
# 2D Cylindrical Gap Heat Transfer Test.
#
# This test exercises 2D gap heat transfer for a constant conductivity gap.
#
# The mesh consists of an inner solid cylinder of radius = 1 unit, and outer
# hollow cylinder with an inner radius of 2 in the x-z plane. In other words,
# the gap between them is 1 radial unit in length.
#
# The calculated results are the same as for the cyl2D.i case in the x-y plane.
[GlobalParams]
  order = SECOND
  family = LAGRANGE
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = cyl2D.e
  []
  [./rotate]
    type = TransformGenerator
    transform = ROTATE
    vector_value = '0 90 0'
    input = file
  [../]
[]
[Functions]
  [./temp]
    type = PiecewiseLinear
    x = '0   1'
    y = '100 200'
  [../]
[]
[Variables]
  [./temp]
   initial_condition = 100
  [../]
[]
[AuxVariables]
  [./gap_conductance]
    order = CONSTANT
    family = MONOMIAL
  [../]
[]
[Kernels]
  [./heat_conduction]
    type = HeatConduction
    variable = temp
  [../]
[]
[AuxKernels]
  [./gap_cond]
    type = MaterialRealAux
    property = gap_conductance
    variable = gap_conductance
    boundary = 2
  [../]
[]
[Materials]
  [./heat1]
    type = HeatConductionMaterial
    block = '1 2'
    specific_heat = 1.0
    thermal_conductivity = 1000000.0
  [../]
[]
[ThermalContact]
  [./thermal_contact]
    type = GapHeatTransfer
    variable = temp
    primary = 3
    secondary = 2
    emissivity_primary = 0
    emissivity_secondary = 0
    gap_conductivity = 1
    quadrature = true
    gap_geometry_type = CYLINDER
    cylinder_axis_point_1 = '0 0 0'
    cylinder_axis_point_2 = '0 1 0'
  [../]
[]
[BCs]
  [./mid]
    type = FunctionDirichletBC
    boundary = 1
    variable = temp
    function = temp
  [../]
  [./temp_far_right]
    type = DirichletBC
    boundary = 4
    variable = temp
    value = 100
  [../]
[]
[Executioner]
  type = Transient
  solve_type = 'PJFNK'
  petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
  petsc_options_value = 'lu       superlu_dist'
  dt = 1
  dtmin = 0.01
  end_time = 1
  nl_rel_tol = 1e-12
  nl_abs_tol = 1e-7
  [./Quadrature]
     order = fifth
     side_order = seventh
  [../]
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [./temp_left]
    type = SideAverageValue
    boundary = 2
    variable = temp
  [../]
  [./temp_right]
    type = SideAverageValue
    boundary = 3
    variable = temp
  [../]
  [./flux_left]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 2
    diffusivity = thermal_conductivity
  [../]
  [./flux_right]
    type = SideDiffusiveFluxIntegral
    variable = temp
    boundary = 3
    diffusivity = thermal_conductivity
  [../]
[]
(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/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole_transient.i)
# Verification Benchmark - Half-wave Dipole Antenna (Frequency Domain)
# Resonant Frequency = 1 GHz
# Wave Propagation Medium: Vacuum
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = dipole_antenna_1G.msh
  []
[]
[Variables]
  [E_real]
    order = FIRST
    family = NEDELEC_ONE
  []
  [E_imag]
    order = FIRST
    family = NEDELEC_ONE
  []
[]
[Kernels]
  [curl_curl_real]
    type = CurlCurlField
    variable = E_real
  []
  [time_derivative_real]
    type = VectorSecondTimeDerivative
    variable = E_real
    coefficient = '1/(3e8 * 3e8)' # 1/c^2 = mu_0 * eps_0
  []
  [curl_curl_imag]
    type = CurlCurlField
    variable = E_imag
  []
  [time_derivative_imag]
    type = VectorSecondTimeDerivative
    variable = E_imag
    coefficient = '1/(3e8 * 3e8)' # 1/c^2 = mu_0 * eps_0
  []
[]
[BCs]
  [antenna_real]                          # Impose exact solution of electric field onto antenna surface.
    type = VectorCurlPenaltyDirichletBC   # Replace with proper antenna surface current condition.
    penalty = 1e5
    function_y = 'cos(2*pi*1e9*t)'
    boundary = antenna
    variable = E_real
  []
  [antenna_imag]
    type = VectorCurlPenaltyDirichletBC
    penalty = 1e5
    function_y = 'sin(2*pi*1e9*t)'
    boundary = antenna
    variable = E_imag
  []
  [radiation_condition_real]              # First order absorbing boundary condition
    type = VectorTransientAbsorbingBC
    variable = E_real
    coupled_field = E_imag
    boundary = boundary
    component = real
  []
  [radiation_condition_imag]
    type = VectorTransientAbsorbingBC
    variable = E_imag
    coupled_field = E_real
    boundary = boundary
    component = imaginary
  []
[]
[Preconditioning]
  [SMP]
    type = SMP
    full = true
  []
[]
[Executioner]
  type = Transient
  solve_type = NEWTON
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  num_steps = 150
  dt = 0.5e-10
  [TimeIntegrator]
    type = NewmarkBeta
  []
[]
[Outputs]
  exodus = true
  perf_graph = true
[]
(modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced.i)
[GlobalParams]
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [file]
    type = FileMeshGenerator
    file = 2blk-gap.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '101'
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    input = file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    sidesets = '100'
    new_block_id = 10000
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  kernel_coverage_check = false
  material_coverage_check = false
[]
[Variables]
  [./temp]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./disp_x]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./disp_y]
    order = FIRST
    family = LAGRANGE
    block = '1 2'
  [../]
  [./lm]
    order = FIRST
    family = LAGRANGE
    block = 'secondary_lower'
  [../]
[]
[Materials]
  [./left]
    type = ADHeatConductionMaterial
    block = 1
    thermal_conductivity = 1000
    specific_heat = 1
  [../]
  [./right]
    type = ADHeatConductionMaterial
    block = 2
    thermal_conductivity = 500
    specific_heat = 1
  [../]
[]
[Kernels]
  [./hc_displaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = true
    block = '1'
  [../]
  [./hc_undisplaced_block]
    type = ADHeatConduction
    variable = temp
    use_displaced_mesh = false
    block = '2'
  [../]
  [disp_x]
    type = Diffusion
    variable = disp_x
    block = '1 2'
  []
  [disp_y]
    type = Diffusion
    variable = disp_y
    block = '1 2'
  []
[]
[UserObjects]
  [simple]
    type = GapFluxModelSimple
    k = 100
    temperature = temp
    boundary = 100
  []
[]
[Constraints]
  [ced]
    type = ModularGapConductanceConstraint
    variable = lm
    secondary_variable = temp
    use_displaced_mesh = true
    primary_boundary = 100
    primary_subdomain = 10000
    secondary_boundary = 101
    secondary_subdomain = 10001
    gap_flux_models = simple
  []
[]
[BCs]
  [./left]
    type = DirichletBC
    variable = temp
    boundary = 'left'
    value = 1
  [../]
  [./right]
    type = DirichletBC
    variable = temp
    boundary = 'right'
    value = 0
  [../]
  [left_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'left'
    value = .1
  []
  [right_disp_x]
    type = DirichletBC
    preset = false
    variable = disp_x
    boundary = 'right'
    value = 0
  []
  [bottom_disp_y]
    type = DirichletBC
    preset = false
    variable = disp_y
    boundary = 'bottom'
    value = 0
  []
[]
[Preconditioning]
  [./fmp]
    type = SMP
    full = true
    solve_type = 'NEWTON'
  [../]
[]
[Executioner]
  type = Steady
  nl_rel_tol = 1e-11
[]
[Outputs]
  exodus = true
  show = 'temp disp_x disp_y'
  [dof]
    type = DOFMap
    execute_on = 'initial'
  []
[]
(test/tests/meshgenerators/tiled_mesh_generator/tiled_mesh_generator.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = cube.e
  []
  [./tmg]
    type = TiledMeshGenerator
    input = fmg
    left_boundary = left
    right_boundary = right
    top_boundary = top
    bottom_boundary = bottom
    front_boundary = front
    back_boundary = back
    x_tiles = 2
    y_tiles = 2
    z_tiles = 2
  []
[]
[Outputs]
  exodus = true
[]
(modules/contact/test/tests/bouncing-block-contact/mixed-weighted-gap-swapped.i)
starting_point = 2e-1
# We offset slightly so we avoid the case where the bottom of the secondary block and the top of the
# primary block are perfectly vertically aligned which can cause the backtracking line search some
# issues for a coarse mesh (basic line search handles that fine)
offset = 1e-2
[GlobalParams]
  displacements = 'disp_x disp_y'
  diffusivity = 1e0
  correct_edge_dropping = true
[]
[Mesh]
  second_order = true
  [file_mesh]
    type = FileMeshGenerator
    file = long-bottom-block-1elem-blocks-coarse.e
  []
[]
[Variables]
  [disp_x]
    block = '1 2'
    scaling = 1e1
    order = SECOND
  []
  [disp_y]
    block = '1 2'
    scaling = 1e1
    order = SECOND
  []
  [frictional_normal_lm]
    block = 4
    scaling = 1e3
  []
[]
[ICs]
  [disp_y]
    block = 2
    variable = disp_y
    value = '${fparse starting_point + offset}'
    type = ConstantIC
  []
[]
[Kernels]
  [disp_x]
    type = MatDiffusion
    variable = disp_x
  []
  [disp_y]
    type = MatDiffusion
    variable = disp_y
  []
[]
[UserObjects]
  [weighted_gap_uo]
    type = LMWeightedGapUserObject
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    lm_variable = frictional_normal_lm
    disp_x = disp_x
    disp_y = disp_y
    correct_edge_dropping = true
  []
[]
[Constraints]
  [frictional_normal_lm]
    type = ComputeWeightedGapLMMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = frictional_normal_lm
    disp_x = disp_x
    disp_y = disp_y
    normalize_c = true
    c = 1.0e-2
    weighted_gap_uo = weighted_gap_uo
  []
  [normal_x]
    type = NormalMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = frictional_normal_lm
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_gap_uo
  []
  [normal_y]
    type = NormalMortarMechanicalContact
    primary_boundary = 10
    secondary_boundary = 20
    primary_subdomain = 3
    secondary_subdomain = 4
    variable = frictional_normal_lm
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    weighted_gap_uo = weighted_gap_uo
  []
[]
[BCs]
  [botx]
    type = DirichletBC
    variable = disp_x
    boundary = 40
    value = 0.0
  []
  [boty]
    type = DirichletBC
    variable = disp_y
    boundary = 40
    value = 0.0
  []
  [topy]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 30
    function = '${starting_point} * cos(2 * pi / 40 * t) + ${offset}'
  []
  [leftx]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 50
    function = '1e-2 * t'
  []
[]
[Executioner]
  type = Transient
  end_time = 200
  dt = 5
  dtmin = .1
  solve_type = 'PJFNK'
  petsc_options = '-snes_converged_reason -ksp_converged_reason'
  petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'lu       NONZERO               1e-15'
  l_max_its = 30
  nl_max_its = 25
  line_search = 'none'
  nl_rel_tol = 1e-12
[]
[Debug]
  show_var_residual_norms = true
[]
[Outputs]
  exodus = true
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
(test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_auto.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = 4ElementJunction.e
  []
  [./breakmesh]
    type = BreakMeshByBlockGenerator
    input = fmg
  []
[]
[Outputs]
  exodus = true
[]
(tutorials/shield_multiphysics/inputs/step01_diffusion/step1.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'mesh_in.e'  # this file must be generated using mesh.i
  []
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
  []
[]
[Kernels]
  [diffusion]
    type = Diffusion
    variable = T        # Operate on the "temperature" variable from above
  []
[]
[BCs]
  [left]
    type = DirichletBC  # Simple u=value BC
    variable = T        # Variable to be set
    boundary = top      # Name of a sideset in the mesh
    value = 330
  []
  [right]
    type = DirichletBC
    variable = T
    boundary = bottom
    value = 300
  []
[]
[Executioner]
  type = Steady       # Steady state problem
  solve_type = NEWTON # Perform a Newton solve
  petsc_options_iname = '-pc_type -pc_hypre_type' # PETSc option pairs with values below
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true # Output Exodus format
[]
(modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_vcp.i)
[GlobalParams]
  volumetric_locking_correction = true
  displacements = 'disp_x disp_y'
[]
[Mesh]
  [input_file]
    type = FileMeshGenerator
    file = hertz_cyl_coarser.e
  []
  [secondary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10001
    new_block_name = 'secondary_lower'
    sidesets = '3'
    input = input_file
  []
  [primary]
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 10000
    sidesets = '2'
    new_block_name = 'primary_lower'
    input = secondary
  []
[]
[Problem]
  type = ReferenceResidualProblem
  extra_tag_vectors = 'ref'
  reference_vector = 'ref'
  converge_on = 'disp_x disp_y'
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [lm_x]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
  [lm_y]
    block = 'secondary_lower'
    use_dual = true
    scaling = 1.0e-5
  []
[]
[AuxVariables]
  [stress_xx]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_yy]
    order = CONSTANT
    family = MONOMIAL
  []
  [stress_xy]
    order = CONSTANT
    family = MONOMIAL
  []
  [saved_x]
  []
  [saved_y]
  []
  [diag_saved_x]
  []
  [diag_saved_y]
  []
[]
[Functions]
  [disp_ramp_vert]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. -0.020 -0.020'
  []
  [disp_ramp_horz]
    type = PiecewiseLinear
    x = '0. 1. 3.5'
    y = '0. 0.0 0.015'
  []
[]
[Physics/SolidMechanics/QuasiStatic]
  [all]
    incremental = false
    save_in = 'saved_x saved_y'
    extra_vector_tags = 'ref'
    block = '1 2 3 4 5 6 7'
    strain = SMALL
    add_variables = false
  []
[]
[AuxKernels]
  [stress_xx]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xx
    index_i = 0
    index_j = 0
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_yy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_yy
    index_i = 1
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
  [stress_xy]
    type = RankTwoAux
    rank_two_tensor = stress
    variable = stress_xy
    index_i = 0
    index_j = 1
    execute_on = timestep_end
    block = '1 2 3 4 5 6 7'
  []
[]
[Postprocessors]
  [bot_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 1
  []
  [bot_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 1
  []
  [top_react_x]
    type = NodalSum
    variable = saved_x
    boundary = 4
  []
  [top_react_y]
    type = NodalSum
    variable = saved_y
    boundary = 4
  []
  [_dt]
    type = TimestepSize
  []
[]
[BCs]
  [side_x]
    type = DirichletBC
    variable = disp_y
    boundary = '1 2'
    value = 0.0
  []
  [bot_y]
    type = DirichletBC
    variable = disp_x
    boundary = '1 2'
    value = 0.0
  []
  [top_y_disp]
    type = FunctionDirichletBC
    variable = disp_y
    boundary = 4
    function = disp_ramp_vert
  []
  [top_x_disp]
    type = FunctionDirichletBC
    variable = disp_x
    boundary = 4
    function = disp_ramp_horz
  []
[]
[Materials]
  [stuff1_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '1'
    youngs_modulus = 1e10
    poissons_ratio = 0.0
  []
  [stuff2_elas_tens]
    type = ComputeIsotropicElasticityTensor
    block = '2 3 4 5 6 7'
    youngs_modulus = 1e6
    poissons_ratio = 0.3
  []
  [stuff1_stress]
    type = ComputeLinearElasticStress
    block = '1'
  []
  [stuff2_stress]
    type = ComputeLinearElasticStress
    block = '2 3 4 5 6 7'
  []
[]
[Executioner]
  type = Transient
  solve_type = 'NEWTON'
  petsc_options = '-snes_ksp_ew'
  petsc_options_iname = '-pc_factor_shift_type -pc_factor_shift_amount'
  petsc_options_value = 'NONZERO               1e-12'
  line_search = 'none'
  nl_abs_tol = 1e-7
  l_max_its = 5
  nl_rel_tol = 1e-09
  start_time = -0.1
  end_time = 0.3 # 3.5
  l_tol = 1e-8
  dt = 0.1
  dtmin = 0.001
[]
[Preconditioning]
  [vcp]
    type = VCP
    full = true
    lm_variable = 'lm_x lm_y'
    primary_variable = 'disp_x disp_y'
    preconditioner = 'LU'
    is_lm_coupling_diagonal = false
    adaptive_condensation = true
  []
[]
[VectorPostprocessors]
  [x_disp]
    type = NodalValueSampler
    variable = disp_x
    boundary = '3 4'
    sort_by = id
  []
  [y_disp]
    type = NodalValueSampler
    variable = disp_y
    boundary = '3 4'
    sort_by = id
  []
  [lm_x]
    type = NodalValueSampler
    variable = lm_x
    boundary = '3'
    sort_by = id
  []
  [lm_y]
    type = NodalValueSampler
    variable = lm_y
    boundary = '3'
    sort_by = id
  []
[]
[Outputs]
  print_linear_residuals = true
  perf_graph = true
  exodus = true
  csv = false
  [console]
    type = Console
    max_rows = 5
  []
  [chkfile]
    type = CSV
    show = 'x_disp y_disp lm_x lm_y'
    file_base = cylinder_friction_check
    create_final_symlink = true
    execute_on = 'FINAL'
  []
[]
[Constraints]
  [weighted_gap_lm]
    type = ComputeFrictionalForceCartesianLMMechanicalContact
    primary_boundary = 2
    secondary_boundary = 3
    primary_subdomain = 10000
    secondary_subdomain = 10001
    lm_x = lm_x
    lm_y = lm_y
    variable = lm_x
    disp_x = disp_x
    disp_y = disp_y
    use_displaced_mesh = true
    correct_edge_dropping = false
    mu = 0.4
    c_t = 1.0e6
    c = 1.0e6
  []
  [x]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_x
    secondary_variable = disp_x
    component = x
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
  [y]
    type = CartesianMortarMechanicalContact
    primary_boundary = '2'
    secondary_boundary = '3'
    primary_subdomain = '10000'
    secondary_subdomain = '10001'
    variable = lm_y
    secondary_variable = disp_y
    component = y
    use_displaced_mesh = true
    compute_lm_residuals = false
    correct_edge_dropping = false
  []
[]
(tutorials/shield_multiphysics/inputs/step13_restart/step13c_restart_from_checkpoint.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = 'step13a_base_calc_out_cp/LATEST'
  []
[]
[Problem]
  # all variables, both nonlinear and auxiliary, are 'restarted'
  restart_file_base = 'step13a_base_calc_out_cp/LATEST'
  # No kernels on the water domain
  kernel_coverage_check = false
  # No materials on the water domain
  material_coverage_check = false
[]
[Variables]
  [T]
    # Adds a Linear Lagrange variable by default
    block = 'concrete_hd concrete Al'
  []
[]
[Kernels]
  [diffusion_concrete]
    type = ADHeatConduction
    variable = T
  []
  [time_derivative]
    type = ADHeatConductionTimeDerivative
    variable = T
  []
[]
[Materials]
  [concrete_hd]
    type = ADHeatConductionMaterial
    block = concrete_hd
    temp = 'T'
    # we specify a function of time, temperature is passed as the time argument
    # in the material
    thermal_conductivity_temperature_function = '5.0 + 0.001 * t'
    specific_heat = 1050
  []
  [concrete]
    type = ADHeatConductionMaterial
    block = concrete
    temp = 'T'
    thermal_conductivity_temperature_function = '2.25 + 0.001 * t'
    specific_heat = 1050
  []
  [Al]
    type = ADHeatConductionMaterial
    block = Al
    temp = T
    thermal_conductivity_temperature_function = '175'
    specific_heat = 875
  []
  [density_concrete_hd]
    type = ADGenericConstantMaterial
    block = 'concrete_hd'
    prop_names = 'density'
    prop_values = '3524' # kg / m3
  []
  [density_concrete]
    type = ADGenericConstantMaterial
    block = 'concrete'
    prop_names = 'density'
    prop_values = '2403' # kg / m3
  []
  [density_Al]
    type = ADGenericConstantMaterial
    block = 'Al'
    prop_names = 'density'
    prop_values = '2270' # kg / m3
  []
[]
[BCs]
  [from_reactor]
    type = NeumannBC
    variable = T
    boundary = inner_cavity_solid
    # 5 MW reactor, only 50 kW removed from radiation, 144 m2 cavity area
    value = '${fparse 5e4 / 144}'
  []
  [air_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'air_boundary'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 10
  []
  [ground]
    type = DirichletBC
    variable = T
    value = 300
    boundary = 'ground'
  []
  [water_convection]
    type = ADConvectiveHeatFluxBC
    variable = T
    boundary = 'water_boundary_inwards'
    T_infinity = 300.0
    # The heat transfer coefficient should be obtained from a correlation
    heat_transfer_coefficient = 600
  []
[]
[Executioner]
  type = Transient
  num_steps = 6
  dt = '${units 12 h -> s}'
  solve_type = NEWTON
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix_1d.i)
[Mesh]
  [iga_file]
    type = FileMeshGenerator
    file = linear_iga.e
    constraint_matrix = linear_iga.m
  []
[]
[Variables]
  [u]
    order = FIRST
    family = LAGRANGE
  []
[]
[Kernels]
  [diff]
    type = Diffusion
    variable = u
  []
[]
[BCs]
  [left]
    type = PenaltyDirichletBC
    penalty = 1e9
    variable = u
    boundary = 'left'
    value = 0
  []
  [right]
    type = PenaltyDirichletBC
    penalty = 1e9
    variable = u
    boundary = 'right'
    value = 1
  []
[]
[Executioner]
  type = Steady
  # Preconditioned norms to avoid penalty-confused linear "convergence"
  petsc_options_iname = '-ksp_norm_type'
  petsc_options_value = 'preconditioned'
  # A much tighter nonlinear tolerance to avoid penalty-confused
  # nonlinear "convergence"
  nl_rel_tol = 1e-15
  nl_abs_tol = 1e-50
[]
[Outputs]
  exodus = true
[]
(test/tests/meshgenerators/sideset_around_subdomain_generator/around.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = twoblocks.e
  []
  [./block_1]
    type = SideSetsAroundSubdomainGenerator
    input = fmg
    block = 'left'
    new_boundary = 'hull_1'
  []
  [./block_2]
    type = SideSetsAroundSubdomainGenerator
    input = block_1
    block = 'right'
    new_boundary = 'hull_2'
  []
[]
[Outputs]
  exodus = true
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/residual_and_jacobian/3d.i)
# 2D test with just strain control
[GlobalParams]
  displacements = 'disp_x disp_y disp_z'
  large_kinematics = true
  macro_gradient = hvar
  constraint_types = ${constraint_types}
  targets = ${targets}
[]
[Mesh]
  [base]
    type = FileMeshGenerator
    file = '3d.exo'
  []
  [sidesets]
    type = SideSetsFromNormalsGenerator
    input = base
    normals = '-1 0 0
                1 0 0
                0 -1 0
                0 1 0
            '
              '    0 0 -1
                0 0 1'
    fixed_normal = true
    new_boundary = 'left right bottom top back front'
  []
[]
[Variables]
  [disp_x]
  []
  [disp_y]
  []
  [disp_z]
  []
  [hvar]
    family = SCALAR
    order = NINTH
  []
[]
[AuxVariables]
  [s11]
    family = MONOMIAL
    order = CONSTANT
  []
  [s21]
    family = MONOMIAL
    order = CONSTANT
  []
  [s31]
    family = MONOMIAL
    order = CONSTANT
  []
  [s12]
    family = MONOMIAL
    order = CONSTANT
  []
  [s22]
    family = MONOMIAL
    order = CONSTANT
  []
  [s32]
    family = MONOMIAL
    order = CONSTANT
  []
  [s13]
    family = MONOMIAL
    order = CONSTANT
  []
  [s23]
    family = MONOMIAL
    order = CONSTANT
  []
  [s33]
    family = MONOMIAL
    order = CONSTANT
  []
  [F11]
    family = MONOMIAL
    order = CONSTANT
  []
  [F21]
    family = MONOMIAL
    order = CONSTANT
  []
  [F31]
    family = MONOMIAL
    order = CONSTANT
  []
  [F12]
    family = MONOMIAL
    order = CONSTANT
  []
  [F22]
    family = MONOMIAL
    order = CONSTANT
  []
  [F32]
    family = MONOMIAL
    order = CONSTANT
  []
  [F13]
    family = MONOMIAL
    order = CONSTANT
  []
  [F23]
    family = MONOMIAL
    order = CONSTANT
  []
  [F33]
    family = MONOMIAL
    order = CONSTANT
  []
[]
[AuxKernels]
  [s11]
    type = RankTwoAux
    variable = s11
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 0
  []
  [s21]
    type = RankTwoAux
    variable = s21
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 0
  []
  [s31]
    type = RankTwoAux
    variable = s31
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 0
  []
  [s12]
    type = RankTwoAux
    variable = s12
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 1
  []
  [s22]
    type = RankTwoAux
    variable = s22
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 1
  []
  [s32]
    type = RankTwoAux
    variable = s32
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 1
  []
  [s13]
    type = RankTwoAux
    variable = s13
    rank_two_tensor = pk1_stress
    index_i = 0
    index_j = 2
  []
  [s23]
    type = RankTwoAux
    variable = s23
    rank_two_tensor = pk1_stress
    index_i = 1
    index_j = 2
  []
  [s33]
    type = RankTwoAux
    variable = s33
    rank_two_tensor = pk1_stress
    index_i = 2
    index_j = 2
  []
  [F11]
    type = RankTwoAux
    variable = F11
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 0
  []
  [F21]
    type = RankTwoAux
    variable = F21
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 0
  []
  [F31]
    type = RankTwoAux
    variable = F31
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 0
  []
  [F12]
    type = RankTwoAux
    variable = F12
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 1
  []
  [F22]
    type = RankTwoAux
    variable = F22
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 1
  []
  [F32]
    type = RankTwoAux
    variable = F32
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 1
  []
  [F13]
    type = RankTwoAux
    variable = F13
    rank_two_tensor = deformation_gradient
    index_i = 0
    index_j = 2
  []
  [F23]
    type = RankTwoAux
    variable = F23
    rank_two_tensor = deformation_gradient
    index_i = 1
    index_j = 2
  []
  [F33]
    type = RankTwoAux
    variable = F33
    rank_two_tensor = deformation_gradient
    index_i = 2
    index_j = 2
  []
[]
[Kernels]
  [sdx]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_x
    component = 0
    scalar_variable = hvar
  []
  [sdy]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_y
    component = 1
    scalar_variable = hvar
  []
  [sdz]
    type = HomogenizedTotalLagrangianStressDivergence
    variable = disp_z
    component = 2
    scalar_variable = hvar
  []
[]
[Functions]
  [strain11]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain22]
    type = ParsedFunction
    expression = '-4.0e-2*t'
  []
  [strain33]
    type = ParsedFunction
    expression = '8.0e-2*t'
  []
  [strain23]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain13]
    type = ParsedFunction
    expression = '-7.0e-2*t'
  []
  [strain12]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain32]
    type = ParsedFunction
    expression = '1.0e-2*t'
  []
  [strain31]
    type = ParsedFunction
    expression = '2.0e-2*t'
  []
  [strain21]
    type = ParsedFunction
    expression = '-1.5e-2*t'
  []
  [stress11]
    type = ParsedFunction
    expression = '4.0e2*t'
  []
  [stress22]
    type = ParsedFunction
    expression = '-2.0e2*t'
  []
  [stress33]
    type = ParsedFunction
    expression = '8.0e2*t'
  []
  [stress23]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress13]
    type = ParsedFunction
    expression = '-7.0e2*t'
  []
  [stress12]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress32]
    type = ParsedFunction
    expression = '1.0e2*t'
  []
  [stress31]
    type = ParsedFunction
    expression = '2.0e2*t'
  []
  [stress21]
    type = ParsedFunction
    expression = '-1.5e2*t'
  []
[]
[BCs]
  [Periodic]
    [x]
      variable = disp_x
      auto_direction = 'x y z'
    []
    [y]
      variable = disp_y
      auto_direction = 'x y z'
    []
    [z]
      variable = disp_z
      auto_direction = 'x y z'
    []
  []
  [fix1_x]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_x
    value = 0
  []
  [fix1_y]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_y
    value = 0
  []
  [fix1_z]
    type = DirichletBC
    boundary = "fix_all"
    variable = disp_z
    value = 0
  []
  [fix2_x]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_x
    value = 0
  []
  [fix2_y]
    type = DirichletBC
    boundary = "fix_xy"
    variable = disp_y
    value = 0
  []
  [fix3_z]
    type = DirichletBC
    boundary = "fix_z"
    variable = disp_z
    value = 0
  []
[]
[Materials]
  [elastic_tensor_1]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 100000.0
    poissons_ratio = 0.3
    block = '1'
  []
  [elastic_tensor_2]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 120000.0
    poissons_ratio = 0.21
    block = '2'
  []
  [elastic_tensor_3]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 80000.0
    poissons_ratio = 0.4
    block = '3'
  []
  [elastic_tensor_4]
    type = ComputeIsotropicElasticityTensor
    youngs_modulus = 76000.0
    poissons_ratio = 0.11
    block = '4'
  []
  [compute_stress]
    type = ComputeLagrangianLinearElasticStress
  []
  [compute_strain]
    type = ComputeLagrangianStrain
    homogenization_gradient_names = 'homogenization_gradient'
  []
  [compute_homogenization_gradient]
    type = ComputeHomogenizedLagrangianStrain
  []
[]
[Postprocessors]
  [s11]
    type = ElementAverageValue
    variable = s11
    execute_on = 'initial timestep_end'
  []
  [s21]
    type = ElementAverageValue
    variable = s21
    execute_on = 'initial timestep_end'
  []
  [s31]
    type = ElementAverageValue
    variable = s31
    execute_on = 'initial timestep_end'
  []
  [s12]
    type = ElementAverageValue
    variable = s12
    execute_on = 'initial timestep_end'
  []
  [s22]
    type = ElementAverageValue
    variable = s22
    execute_on = 'initial timestep_end'
  []
  [s32]
    type = ElementAverageValue
    variable = s32
    execute_on = 'initial timestep_end'
  []
  [s13]
    type = ElementAverageValue
    variable = s13
    execute_on = 'initial timestep_end'
  []
  [s23]
    type = ElementAverageValue
    variable = s23
    execute_on = 'initial timestep_end'
  []
  [s33]
    type = ElementAverageValue
    variable = s33
    execute_on = 'initial timestep_end'
  []
  [F11]
    type = ElementAverageValue
    variable = F11
    execute_on = 'initial timestep_end'
  []
  [F21]
    type = ElementAverageValue
    variable = F21
    execute_on = 'initial timestep_end'
  []
  [F31]
    type = ElementAverageValue
    variable = F31
    execute_on = 'initial timestep_end'
  []
  [F12]
    type = ElementAverageValue
    variable = F12
    execute_on = 'initial timestep_end'
  []
  [F22]
    type = ElementAverageValue
    variable = F22
    execute_on = 'initial timestep_end'
  []
  [F32]
    type = ElementAverageValue
    variable = F32
    execute_on = 'initial timestep_end'
  []
  [F13]
    type = ElementAverageValue
    variable = F13
    execute_on = 'initial timestep_end'
  []
  [F23]
    type = ElementAverageValue
    variable = F23
    execute_on = 'initial timestep_end'
  []
  [F33]
    type = ElementAverageValue
    variable = F33
    execute_on = 'initial timestep_end'
  []
[]
[Executioner]
  type = Transient
  residual_and_jacobian_together = true
  solve_type = 'newton'
  line_search = none
  petsc_options_iname = '-pc_type'
  petsc_options_value = 'lu'
  l_max_its = 2
  l_tol = 1e-14
  nl_max_its = 10
  nl_rel_tol = 1e-8
  nl_abs_tol = 1e-10
  start_time = 0.0
  dt = 0.2
  dtmin = 0.2
  end_time = 1.0
[]
[Outputs]
  csv = true
[]
(test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i)
[Mesh]
  [./fmg]
    type = FileMeshGenerator
    file = quad_mesh.e
  []
  [./fmg2]
    type = FileMeshGenerator
    file = tri_mesh.e
  []
  [./pmg]
    type = PatternedMeshGenerator
    inputs = 'fmg fmg2'
    pattern = '0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
               0 1 1 0 0 0 0 0 0 0 0 1 1 0 ;
               0 1 1 1 0 0 0 0 0 0 1 1 1 0 ;
               0 1 0 1 1 0 0 0 0 1 1 0 1 0 ;
               0 1 0 0 1 1 0 0 1 1 0 0 1 0 ;
               0 1 0 0 0 1 1 1 1 0 0 0 1 0 ;
               0 1 0 0 0 0 1 1 0 0 0 0 1 0 ;
               0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
               0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
               0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
               0 1 0 0 0 0 0 0 0 0 0 0 1 0 ;
               0 0 0 0 0 0 0 0 0 0 0 0 0 0'
    bottom_boundary = 1
    right_boundary = 2
    top_boundary = 3
    left_boundary = 4
  []
[]
[Variables]
  [./u]
  [../]
[]
[Kernels]
  [./diff]
    type = MatCoefDiffusion
    variable = u
    conductivity = conductivity
  [../]
[]
[BCs]
  [./top]
    type = DirichletBC
    variable = u
    boundary = 3
    value = 1
  [../]
  [./bottom]
    type = DirichletBC
    variable = u
    boundary = 1
    value = 0
  [../]
[]
[Materials]
  [./mat1]
    type = GenericConstantMaterial
    block = 1
    prop_names = conductivity
    prop_values = 100
  [../]
  [./mat2]
    type = GenericConstantMaterial
    block = 2
    prop_names = conductivity
    prop_values = 1e-4
  [../]
[]
[Executioner]
  type = Steady
  solve_type = PJFNK
  petsc_options_iname = '-pc_type -pc_hypre_type'
  petsc_options_value = 'hypre boomeramg'
[]
[Outputs]
  exodus = true
[]
(test/tests/mortar/continuity-3d-non-conforming/continuity_non_conforming_tet.i)
[Mesh]
  second_order = false
  [file]
    type = FileMeshGenerator
    file = tet_non_mesh.e
  []
  [secondary]
    input = file
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 11
    new_block_name = "secondary"
    sidesets = '101'
  []
  [primary]
    input = secondary
    type = LowerDBlockFromSidesetGenerator
    new_block_id = 12
    new_block_name = "primary"
    sidesets = '102'
  []
[]
[Problem]
  kernel_coverage_check = false
[]
[Variables]
  [T]
    block = '1 2'
  []
  [lambda]
    block = 'secondary'
  []
[]
[BCs]
  [neumann]
    type = FunctionGradientNeumannBC
    exact_solution = exact_soln_primal
    variable = T
    boundary = '1 2'
  []
[]
[Kernels]
  [conduction]
    type = Diffusion
    variable = T
    block = '1 2'
  []
  [sink]
    type = Reaction
    variable = T
    block = '1 2'
  []
  [forcing_function]
    type = BodyForce
    variable = T
    function = forcing_function
    block = '1 2'
  []
[]
[Functions]
  [forcing_function]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi) + 3*pi^2*sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_primal]
    type = ParsedFunction
    expression = 'sin(x*pi)*sin(y*pi)*sin(z*pi)'
  []
  [exact_soln_lambda]
    type = ParsedFunction
    expression = 'pi*sin(pi*y)*sin(pi*z)*cos(pi*x)'
  []
[]
[Debug]
  show_var_residual_norms = 1
[]
[Constraints]
  [mortar]
    type = EqualValueConstraint
    primary_boundary = 2
    secondary_boundary = 1
    primary_subdomain = '12'
    secondary_subdomain = '11'
    variable = lambda
    secondary_variable = T
    delta = 0.1
  []
[]
[Preconditioning]
  [smp]
    type = SMP
    full = true
  []
[]
[Executioner]
  solve_type = NEWTON
  type = Steady
  petsc_options_iname = '-pc_type -snes_linesearch_type -pc_factor_shift_type '
                        '-pc_factor_shift_amount'
  petsc_options_value = 'lu       basic                 NONZERO               1e-15'
[]
[Outputs]
  exodus = true
[]
[Postprocessors]
  [L2lambda]
    type = ElementL2Error
    variable = lambda
    function = exact_soln_lambda
    execute_on = 'timestep_end'
    block = 'secondary'
  []
  [L2u]
    type = ElementL2Error
    variable = T
    function = exact_soln_primal
    execute_on = 'timestep_end'
    block = '1 2'
  []
  [h]
    type = AverageElementSize
    block = '1 2'
  []
[]
(test/tests/restart/restart_steady_from_transient/steady_from_transient_restart.i)
[Mesh]
  [fmg]
    type = FileMeshGenerator
    file = transient_out_cp/LATEST
  []
  parallel_type = replicated
[]
[Functions]
  [./exact_fn]
    type = ParsedFunction
    expression = ((x*x)+(y*y))
  [../]
  [./forcing_fn]
    type = ParsedFunction
    expression = -4
  [../]
[]
[Variables]
  [./u]
    order = FIRST
    family = LAGRANGE
  [../]
[]
[Kernels]
  [./diff]
    type = Diffusion
    variable = u
  [../]
  [./ffn]
    type = BodyForce
    variable = u
    function = forcing_fn
  [../]
[]
[BCs]
  [./all]
    type = FunctionDirichletBC
    variable = u
    boundary = '0 1 2 3'
    function = exact_fn
  [../]
[]
[Executioner]
  type = Steady
  solve_type = 'PJFNK'
[]
[Outputs]
  exodus = true
[]
[Problem]
  restart_file_base = transient_out_cp/LATEST
[]