- 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
- (test/tests/meshgenerators/coarsen_block_generator/coarsen_quad_multi.i)
- (test/tests/meshgenerators/xy_delaunay_generator/xydelaunay_quadratic.i)
- (test/tests/fvkernels/mms/skewness-correction/two_term_extrapol/advection-outflow.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_2d.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/ad_czm.i)
- (modules/contact/test/tests/bouncing-block-contact/variational-frictional-action.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_sphere3D_mortar.i)
- (modules/navier_stokes/test/tests/finite_element/ins/jeffery_hamel/wedge_dirichlet.i)
- (modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insad.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al_test_nochange.i)
- (modules/navier_stokes/test/tests/postprocessors/pressure_drop/drop_insfv.i)
- (test/tests/meshgenerators/sidesets_from_points_generator/sidesets_from_points.i)
- (test/tests/mortar/continuity-2d-non-conforming/soln-continuity-pg.i)
- (test/tests/meshgenerators/mesh_extruder_generator/extrude_angle.i)
- (test/tests/mortar/displaced-gap-conductance-2d-non-conforming/gap-conductance.i)
- (modules/contact/test/tests/mortar_aux_kernels/block-dynamics-aux-fretting-wear-test-action.i)
- (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar_friction.i)
- (modules/peridynamics/test/tests/mesh/2D_convert_all_retain.i)
- (test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer1.i)
- (test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals.i)
- (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_interface_boundaries.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction_function.i)
- (test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator.i)
- (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_annulus_thermal_contact.i)
- (test/tests/restart/restart_steady_from_transient/steady_from_transient_restart.i)
- (test/tests/positions/element_group_centroid_positions.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-action.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg.i)
- (test/tests/meshgenerators/file_mesh_generator/1d_discontinuous_iga.i)
- (test/tests/restart/scalar-var/part2.i)
- (test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex-action.i)
- (modules/porous_flow/examples/restart/gas_injection.i)
- (modules/solid_mechanics/test/tests/CylindricalRankTwoAux/test.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere_mortar_error.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/small_patch.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-strain.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/fv_modular_gap_heat_transfer_mortar_radiation_conduction.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/1d.i)
- (modules/porous_flow/examples/multiapp_fracture_flow/3dFracture/fracture_only_aperture_changing.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_tight.i)
- (modules/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole.i)
- (test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix_1d.i)
- (modules/solid_mechanics/test/tests/postprocessors/normal_boundary_displacement.i)
- (test/tests/userobjects/mortar_user_object/displaced_test.i)
- (modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step.i)
- (test/tests/mortar/mortar-q-points/test.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_conduction_UOs_function.i)
- (modules/electromagnetics/test/tests/benchmarks/waveguide2D/waveguide2D_test.i)
- (test/tests/preconditioners/vcp/vcp_test.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2drow.i)
- (modules/peridynamics/test/tests/mesh/Error_wrong_bonding_blockID.i)
- (modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri_refine.i)
- (modules/electromagnetics/test/tests/benchmarks/eigenvalue_problems/eigen_base.i)
- (test/tests/restart/p_refinement_restart/restarted_steady.i)
- (test/tests/transfers/multiapp_interpolation_transfer/fromrestrictedsub_sub.i)
- (modules/ray_tracing/test/tests/traceray/nonplanar/nonplanar.i)
- (test/tests/mortar/aux-gap/mismatch.i)
- (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_volume_3D.i)
- (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-aux-kernel.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_tight_slip.i)
- (modules/contact/test/tests/bouncing-block-contact/variational-frictional.i)
- (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_element_extra_integer_swap.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_adaptivity.i)
- (modules/ray_tracing/test/tests/raybcs/reflect_ray_bc/reflect_ray_bc_nonplanar.i)
- (test/tests/mesh/splitting/extrude_from_split.i)
- (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_OSPD.i)
- (test/tests/userobjects/mortar_user_object/test.i)
- (test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga_l2.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action.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/porous_flow/examples/groundwater/ex02_abstraction.i)
- (test/tests/mortar/gap-conductance-2d-non-conforming/gap-conductance.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_splittrue.i)
- (test/tests/meshgenerators/gmsh/gmsh_test.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/action/restart-block-restriction/ns-restart-transient.i)
- (modules/reactor/test/tests/meshgenerators/cartesian_concentric_circle_adaptive_boundary_generator/square_2d.i)
- (modules/contact/test/tests/sliding_block/in_and_out/frictionless_lm.i)
- (modules/navier_stokes/test/tests/finite_volume/materials/ergun/ergun.i)
- (modules/solid_mechanics/test/tests/cross_section_deflection/test_one_step_two_ducts.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/jeffery-hamel/wedge_dirichlet_fv.i)
- (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_radiation.i)
- (modules/solid_mechanics/test/tests/j_integral_vtest/fgm_5.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_xz.i)
- (modules/contact/test/tests/bouncing-block-contact/frictionless-penalty-weighted-gap-action.i)
- (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact_constant_conductance.i)
- (test/tests/meshgenerators/elements_to_simplices_converter/hex_prism_convert.i)
- (test/tests/meshgenerators/sideset_extruder_generator/extrude_multiblock.i)
- (test/tests/meshdivisions/extra_elem_id_division.i)
- (modules/contact/test/tests/verification/patch_tests/mindlin/cylinder_friction_node_face.i)
- (test/tests/meshdivisions/nested_division.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_existing_UOs.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_normal_al.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al.i)
- (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_unstructured.i)
- (modules/peridynamics/test/tests/mesh/3D_sidesets_partial_boundary.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2dsole.i)
- (modules/solid_mechanics/test/tests/j_integral_vtest/j_int_fgm_sif.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/2d-rc-action-nulltr.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/3d.i)
- (modules/scalar_transport/test/tests/physics/restart/test_cg.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_vcp.i)
- (test/tests/meshgenerators/sideset_around_subdomain_generator/around_normals_generator.i)
- (modules/solid_mechanics/test/tests/shell/static/plate_concentrated_loads.i)
- (test/tests/mortar/periodic-value/periodic.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/small-tests/2d.i)
- (test/tests/ics/from_exodus_solution/elem_part2.i)
- (test/tests/partitioners/file_mesh_skip_partition/file_mesh_skip_partitioning.i)
- (modules/porous_flow/examples/groundwater/ex02_steady_state.i)
- (modules/solid_mechanics/examples/coal_mining/fine.i)
- (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_lowerDblock.i)
- (test/tests/fvics/file_ic/file_restart_linearfv.i)
- (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_PINSFV.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/1d.i)
- (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_various_actions.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/lagrangian/cartesian/updated/special/patch.i)
- (test/tests/mortar/continuity-2d-conforming/equalgradient.i)
- (test/tests/mortar/continuity-2d-conforming/conforming_two_var.i)
- (modules/solid_mechanics/test/tests/domain_integral_thermal/interaction_integral_2d_rot.i)
- (test/tests/mesh/mesh_only/mesh_only.i)
- (test/tests/fvkernels/mms/skewness-correction/diffusion/skewed.i)
- (modules/solid_mechanics/test/tests/cohesive_zone_model/czm_patch_test_base.i)
- (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance-bnd-material.i)
- (modules/porous_flow/examples/coal_mining/coarse_with_fluid.i)
- (test/tests/meshgenerators/advanced_extruder_generator/advanced_extruder_with_boundary_swap.i)
- (test/tests/mortar/aux-gap/gap.i)
- (modules/solid_mechanics/examples/cframe_iga/cframe_iga.i)
- (modules/contact/test/tests/multiple_contact_pairs/multiple_pairs_mortar.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction.i)
- (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id_cut.i)
- (modules/solid_mechanics/tutorials/basics/part_3_1.i)
- (test/tests/mortar/continuity-2d-non-conforming/soln-continuity.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_3d.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty.i)
- (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse_automatic_pair.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/large_patch.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-strain.i)
- (modules/contact/test/tests/bouncing-block-contact/ping-ponging/mortar-no-ping-pong_weighted.i)
- (test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity.i)
- (test/tests/meshgenerators/sideset_around_subdomain_generator/around.i)
- (modules/heat_transfer/test/tests/meshed_gap_thermal_contact/meshed_gap_thermal_contact.i)
- (modules/solid_mechanics/test/tests/umat/multiple_blocks/rve_multimaterial.i)
- (modules/contact/test/tests/mortar_dynamics/block-dynamics-friction-action.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_conduction.i)
- (test/tests/meshgenerators/gmsh_bcs/gmsh_bcs.i)
- (test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga.i)
- (modules/peridynamics/test/tests/mesh/2D_convert_one_retain.i)
- (modules/contact/test/tests/pdass_problems/frictional_bouncing_block_action.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/noaction_3d.i)
- (modules/peridynamics/test/tests/mesh/3D_sideset.i)
- (test/tests/meshgenerators/add_all_side_sets_generators/less_simple.i)
- (modules/contact/test/tests/multiple_contact_pairs/three_hexagons_coarse.i)
- (test/tests/meshgenerators/sidesets_by_normals_generator/simple.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/large_gap_heat_transfer_test_sphere.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/3d.i)
- (modules/peridynamics/test/tests/simple_tests/2D_irregularD_variableH_BPD.i)
- (modules/porous_flow/examples/coal_mining/fine_with_fluid.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_polycrystal.i)
- (modules/contact/test/tests/fieldsplit/frictionless_mortar_FS.i)
- (modules/contact/test/tests/3d-mortar-contact/half_sphere_nodal_geometry.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/patch/small_patch.i)
- (test/tests/mortar/continuity-3d-non-conforming/continuity_penalty_sphere_hex.i)
- (test/tests/reporters/extra_id_integral/extra_id_integral.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2dscalar.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_auto.i)
- (test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator2.i)
- (test/tests/mortar/convergence-studies/continuity-3d/continuity.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/shell/static/tapered.i)
- (modules/solid_mechanics/examples/coal_mining/coarse.i)
- (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFV.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/ld-stress.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_separate.i)
- (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_2dblock.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/gap_heat_transfer_htonly_rz_test.i)
- (test/tests/meshgenerators/patterned_mesh_generator/patterned_mesh_generator.i)
- (test/tests/meshgenerators/elements_to_tetrahedrons_convertor/hex_prism_convert.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_verbose.i)
- (test/tests/preconditioners/vcp/no_condense_test.i)
- (modules/reactor/test/tests/meshgenerators/revolve_generator/ei_swap.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar_action/modular_gap_heat_transfer_mortar_displaced_radiation_conduction_action_lowerd_exists.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar_displaced.i)
- (test/tests/mortar/continuity-2d-conforming/conforming-2nd-order.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian.i)
- (modules/heat_transfer/test/tests/heat_conduction/2d_quadrature_gap_heat_transfer/perfect_split.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/large_gap_heat_transfer_test_sphere_mortar.i)
- (test/tests/mesh/tetgen/tetgen_mesh.i)
- (test/tests/mortar/continuity-2d-non-conforming/sequencing-stateful-soln-continuity.i)
- (test/tests/misc/ad_curvature/test-circle.i)
- (test/tests/mortar/continuity-3d-non-conforming/continuity_sphere_hex.i)
- (test/tests/meshgenerators/stitched_mesh_generator/stitched_mesh_generator_sameid.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty.i)
- (modules/navier_stokes/test/tests/postprocessors/flow_rates/conservation_INSFE.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_splittrue.i)
- (test/tests/meshgenerators/mesh_extruder_generator/extrude_quad.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty_al.i)
- (test/tests/meshgenerators/smooth_mesh_generator/mesh_smoother_generator.i)
- (modules/peridynamics/test/tests/mesh/2D_convert_one.i)
- (test/tests/meshgenerators/file_mesh_generator/exact_discontinuous_iga.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar.i)
- (modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave_with_ADMaterials.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_3D_auto.i)
- (modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp_symm.i)
- (modules/contact/test/tests/multiple_contact_pairs/split_sidesets.i)
- (test/tests/mesh/subdomain_partitioner/subdomain_partitioner.i)
- (modules/contact/test/tests/fieldsplit/frictional_mortar_FS.i)
- (test/tests/restart/receiver/receiver_restart.i)
- (modules/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
- (modules/peridynamics/test/tests/mesh/2D_single_interface_block.i)
- (test/tests/meshgenerators/file_mesh_generator/iga_constraint_matrix.i)
- (test/tests/meshgenerators/file_mesh_generator/2d_discontinuous_iga.i)
- (modules/navier_stokes/test/tests/finite_volume/cns/pressure_outlet/subsonic_nozzle_fixed_inflow_hllc.i)
- (test/tests/mortar/3d-periodic/periodic.i)
- (test/tests/meshgenerators/transform_generator/rotate_and_scale.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/large-tests/2d.i)
- (test/tests/vectorpostprocessors/extra_id_integral/extra_id_vpp.i)
- (test/tests/meshgenerators/mesh_extruder_generator/extruder_tri.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/modular_gap_heat_transfer_mortar.i)
- (modules/solid_mechanics/test/tests/j_integral_vtest/axisymmetric_solution_tran.i)
- (modules/contact/test/tests/pdass_problems/ironing_penalty_action.i)
- (test/tests/meshgenerators/sidesets_by_normals_generator/less_simple.i)
- (modules/contact/test/tests/bouncing-block-contact/frictional-nodal-min-normal-lm-mortar-pdass-tangential-lm-mortar-disp.i)
- (modules/contact/test/tests/bouncing-block-contact/grid-sequencing/grid-sequencing.i)
- (test/tests/mortar/continuity-3d-non-conforming/continuity_non_conforming_tet.i)
- (test/tests/meshgenerators/block_deletion_generator/block_deletion_test11.i)
- (modules/navier_stokes/test/tests/finite_volume/cns/stagnation_inlet/supersonic_nozzle_hllc.i)
- (test/tests/meshgenerators/tiled_mesh_generator/tiled_mesh_generator.i)
- (modules/contact/test/tests/non-singular-frictional-mortar/frictional-mortar.i)
- (test/tests/fvics/file_ic/file_restart.i)
- (modules/heat_transfer/test/tests/homogenization/homogenize_tc_hex.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_balance/large_gap_heat_transfer_test_sphere.i)
- (modules/contact/test/tests/bouncing-block-contact/mixed-weighted-gap-swapped.i)
- (modules/reactor/test/tests/meshgenerators/peripheral_ring_mesh_generator/core_ring.i)
- (modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_2.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_mortar_displaced.i)
- (test/tests/restart/scalar-var/part3.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/special/patch.i)
- (modules/contact/test/tests/mortar_cartesian_lms/cylinder_friction_cartesian_pg.i)
- (modules/combined/test/tests/gap_heat_transfer_jac/two_blocks.i)
- (test/tests/meshgenerators/unique_extra_id_mesh_generator/unique_id.i)
- (modules/reactor/test/tests/meshgenerators/reporting_id/depletion_id/depletion_id.i)
- (test/tests/meshgenerators/file_mesh_generator/2d_diffusion_iga_nosplines.i)
- (test/tests/misc/no-renumber-disp-mesh-exodus/test.i)
- (modules/contact/test/tests/mortar_restart/frictional_bouncing_block_action_restart_1.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/action/action_2d.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/cyl2D_yz.i)
- (modules/heat_transfer/test/tests/physics/restart/test_fv.i)
- (test/tests/mortar/continuity-3d-non-conforming/continuity_mixed.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/diverger/diverger.i)
- (modules/contact/examples/2d_indenter/indenter_rz_fine.i)
- (modules/navier_stokes/test/tests/finite_volume/physics/restart/2d_channel_scalar_turbulence_init.i)
- (test/tests/mortar/displaced-gap-conductance-2d-bnd-coupling/gap-conductance.i)
- (modules/combined/test/tests/3d-mortar-projection-tolerancing/test.i)
- (modules/electromagnetics/test/tests/benchmarks/evanescent_wave/evanescent_wave.i)
- (modules/reactor/test/tests/meshgenerators/peripheral_triangle_mesh_generator/abtr_tri.i)
- (modules/electromagnetics/test/tests/benchmarks/dipole_antenna/dipole_transient.i)
- (modules/contact/test/tests/pdass_problems/ironing.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_xz.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/gap_heat_transfer_radiation_test.i)
- (modules/contact/test/tests/multiple_contact_pairs/continuous_sidesets.i)
- (test/tests/meshgenerators/break_mesh_by_block_generator/break_mesh_2DJunction_polycrystal.i)
- (modules/solid_mechanics/test/tests/shell/static/pinched_cylinder_symm_local_stress.i)
- (test/tests/meshgenerators/sidesets_between_subdomains_generator/between.i)
- (modules/navier_stokes/test/tests/finite_element/ins/cg-dg-hybrid/mms/lid-driven-skewed/hybrid-skewed-vortex.i)
- (test/tests/meshgenerators/file_mesh_generator/exodus_file_mesh_with_id.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_htonly/planar_yz.i)
- (test/tests/meshgenerators/file_mesh_generator/3d_steady_diffusion_iga.i)
- (test/tests/meshgenerators/sidesets_from_normals_generator/sidesets_cylinder_normals_fixed.i)
- (modules/reactor/test/tests/meshgenerators/hexagon_concentric_circle_adaptive_boundary_generator/hex_2d.i)
- (test/tests/meshgenerators/cut_mesh_by_plane_generator/hex_prism_cut.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/updated/patch/large_patch.i)
- (modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/convergence/sd-stress.i)
- (modules/navier_stokes/test/tests/finite_volume/ins/mms/skew-correction/skewed-vortex.i)
- (modules/peridynamics/test/tests/mesh/2D_sidesets_partial_boundary.i)
- (test/tests/geomsearch/3d_penetration_locator/3d_rings.i)
- (test/tests/auxkernels/projection_aux/2d_and_lower_d.i)
- (test/tests/meshgenerators/mesh_extruder_generator/extrude_remap_layer2.i)
- (modules/heat_transfer/test/tests/gap_heat_transfer_mortar/bc_gap_heat_transfer_displaced_conduction.i)
- (test/tests/mortar/continuity-2d-non-conforming/dual-soln-continuity-vcp.i)
- (test/tests/quadrature/qweights/positive_qweights.i)
- (test/tests/meshgenerators/block_to_mesh_converter_generator/conv_multiblock.i)
- (test/tests/mortar/continuity-2d-conforming/conforming.i)
- (modules/solid_mechanics/test/tests/cross_section_deflection/test_therm_exp.i)
- (modules/peridynamics/test/tests/mesh/Error_nonexisting_sideset.i)
- (test/tests/fvkernels/mms/skewness-correction/adv-diff-react/skewed.i)
- (modules/solid_mechanics/test/tests/shell/static/pressure_error.i)
- (modules/peridynamics/test/tests/generalized_plane_strain/generalized_plane_strain_squares_OSPD.i)
- (test/tests/meshgenerators/add_all_side_sets_generators/simple.i)
- (test/tests/meshgenerators/ordering_of_execution/modifier_depend_order.i)
- (modules/solid_mechanics/test/tests/j_integral/j_integral_2d_block_restrict.i)
- (modules/peridynamics/test/tests/auxkernels/boundary_offset_node_area_2D.i)
- (modules/porous_flow/examples/fluidflower/fluidflower.i)
- (modules/contact/test/tests/pdass_problems/cylinder_friction_penalty_frictional_al_action_amg_bussetta_simple.i)
(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
[]
(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/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'
[]
[]
(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
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[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'
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = 'stress none none stress strain none none none none'
targets = 'stress11 stress12 strain22'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[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
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
variable = hvar
[]
[]
[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
[]
[]
[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/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.05'
[]
[]
[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
[]
(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 contact_pressure nodal_area penetration'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = 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_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/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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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
function = 0
[]
[inlet-v]
type = INSFVInletVelocityBC
boundary = 'bottom'
variable = v
function = 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/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/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
[]
(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
[]
(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
[]
[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_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'
[]
[]
(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
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '10 101'
sort_by = x
execute_on = NONLINEAR
[]
[]
(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
(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/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
[]
(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/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
[]
(test/tests/meshgenerators/stitched_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 = StitchedMeshGenerator
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/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
[../]
[]
(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
[]
(test/tests/positions/element_group_centroid_positions.i)
[Mesh]
# Need additional reductions in code for distributed
parallel_type = replicated
[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/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
hide = 'contact_pressure nodal_area penetration'
[]
[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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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
[]
(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'
[]
[]
(test/tests/meshgenerators/file_mesh_generator/file_mesh_generator.i)
[Mesh]
[fmg]
type = FileMeshGenerator
file = square.e
[]
[]
[Outputs]
exodus = 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 = '1 1 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/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/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
[]
(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]
coord_type = RZ
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
[]
[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'
[]
[]
(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/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'
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
targets = 'strain11 strain21 strain31 strain12 strain22 strain32 strain13 strain23 strain33'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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
[]
(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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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
[]
(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
[]
(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
[]
(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
[]
(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/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
[]
(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/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
[]
(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/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2drow.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 = FIRST
[]
[hvarA]
family = SCALAR
order = SECOND
[]
[]
[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
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergenceR
variable = disp_x
component = 0
macro_var = hvar
macro_other = hvarA
prime_scalar = 0
compute_field_residuals = true
compute_scalar_residuals = false
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergenceR
variable = disp_y
component = 1
macro_var = hvar
macro_other = hvarA
prime_scalar = 0
compute_field_residuals = true
compute_scalar_residuals = false
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sd0]
type = HomogenizedTotalLagrangianStressDivergenceR
variable = disp_x
component = 0
macro_var = hvar
macro_other = hvarA
prime_scalar = 0
compute_field_residuals = false
compute_scalar_residuals = true
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sd1]
type = HomogenizedTotalLagrangianStressDivergenceR
variable = disp_y
component = 1
macro_var = hvarA
macro_other = hvar
prime_scalar = 1
compute_field_residuals = false
compute_scalar_residuals = true
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[Problem]
kernel_coverage_check = false
error_on_jacobian_nonzero_reallocation = true
[]
[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
[]
[]
[Functions]
[strain11]
type = ParsedFunction
value = '4.0e-2*t'
[]
[strain22]
type = ParsedFunction
value = '-2.0e-2*t'
[]
[strain12]
type = ParsedFunction
value = '1.0e-2*t'
[]
[stress11]
type = ParsedFunction
value = '400*t'
[]
[stress22]
type = ParsedFunction
value = '-200*t'
[]
[stress12]
type = ParsedFunction
value = '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 = ComputeHomogenizedLagrangianStrainA
macro_gradientA = hvar
macro_gradient = hvarA
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[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'
# solve_type = 'PJFNK'
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/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/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/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
[]
(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/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/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/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/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
[]
(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
[]
[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'
[]
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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/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/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/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
[]
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[penalty_gap]
type = PenaltyMortarUserObjectAux
variable = normal_gap
user_object = friction_uo
contact_quantity = normal_gap
[]
[react_x]
type = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
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
[]
[]
(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/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/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
[]
(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/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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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/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/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
[]
(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/gmsh/gmsh_test.i)
[Mesh]
[./fmg]
type = FileMeshGenerator
file = sample.msh
[]
[]
(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_function = '0.1 0'
energy_inlet_types = 'fixed-temperature'
energy_inlet_function = '1'
wall_boundaries = 'top bottom'
momentum_wall_types = 'noslip noslip'
energy_wall_types = 'heatflux heatflux'
energy_wall_function = '0 0'
outlet_boundaries = 'right'
momentum_outlet_types = 'fixed-pressure'
pressure_function = '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
[]
(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'
[]
[]
(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'
[]
[]
(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'
function = ${superficial_vel_x_initial}
boundary = 'top'
[]
[inlet_vel_y]
type = INSFVInletVelocityBC
variable = 'superficial_vel_y'
function = ${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
[]
(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/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'
function = vel_x_exact
[]
[inlet_y]
type = INSFVInletVelocityBC
variable = vel_y
boundary = 'inlet outlet'
function = 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/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/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/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
[]
(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/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
[]
[]
(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/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
[]
(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/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/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 = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
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'
[]
[]
(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
[]
(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'
[]
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = friction_uo
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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/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/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2dsole.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 = FIRST
[]
[hvarA]
family = SCALAR
order = SECOND
[]
[]
[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
[]
[]
[Kernels]
[sdx0]
type = HomogenizedTotalLagrangianStressDivergenceA
variable = disp_x
component = 0
macro_var = hvar
macro_other = hvarA
prime_scalar = 0
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sdy0]
type = HomogenizedTotalLagrangianStressDivergenceA
variable = disp_y
component = 1
macro_var = hvar
macro_other = hvarA
prime_scalar = 0
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sdx1]
type = HomogenizedTotalLagrangianStressDivergenceA
variable = disp_x
component = 0
macro_var = hvarA
macro_other = hvar
prime_scalar = 1
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sdy1]
type = HomogenizedTotalLagrangianStressDivergenceA
variable = disp_y
component = 1
macro_var = hvarA
macro_other = hvar
prime_scalar = 1
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[Problem]
kernel_coverage_check = false
error_on_jacobian_nonzero_reallocation = true
[]
[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
[]
[]
[Functions]
[strain11]
type = ParsedFunction
value = '4.0e-2*t'
[]
[strain22]
type = ParsedFunction
value = '-2.0e-2*t'
[]
[strain12]
type = ParsedFunction
value = '1.0e-2*t'
[]
[stress11]
type = ParsedFunction
value = '400*t'
[]
[stress22]
type = ParsedFunction
value = '-200*t'
[]
[stress12]
type = ParsedFunction
value = '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 = ComputeHomogenizedLagrangianStrainA
macro_gradientA = hvar
macro_gradient = hvarA
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[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'
# solve_type = 'PJFNK'
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/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
[]
(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_function = '1 0'
wall_boundaries = 'top bottom'
momentum_wall_types = 'slip slip'
outlet_boundaries = 'right'
momentum_outlet_types = 'fixed-pressure'
pressure_function = '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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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/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
[]
[]
(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
[]
(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
[]
(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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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
[]
(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/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
[]
(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/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
[]
(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/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/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
function = 0
[]
[inlet-v]
type = INSFVInletVelocityBC
boundary = 'bottom'
variable = v
function = 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
[]
(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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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
[]
(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/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/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/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
[]
(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
[]
(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/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/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/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.05'
[../]
[]
[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
[]
(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
[]
[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'
[]
[]
(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
[]
(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'
[]
[]
(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/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/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
[]
[]
[VectorPostprocessors]
[cont_press]
type = NodalValueSampler
variable = contact_pressure
boundary = '10 101'
sort_by = x
execute_on = NONLINEAR
[]
[]
(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
[]
(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
[]
(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
[]
(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/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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
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
[]
[]
(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/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/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'
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
targets = 'strain11 strain12 strain22 strain13 strain23 strain33'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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
[]
[]
(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
[]
(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/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/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/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'
zeta = 0.05
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
[]
[]
(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
[]
(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/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/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/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/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
constraint_types = 'stress strain strain strain stress strain strain strain strain'
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
targets = 'stress11 strain21 strain31 strain12 stress22 strain32 strain13 strain23 strain33'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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'
[]
[zero]
type = ConstantFunction
expression = 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
[]
[]
[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/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
[../]
[]
(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/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
[]
(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/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
[]
[Problem]
coord_type = RZ
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
allow_renumbering = false
[]
[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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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
[]
(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/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
[]
(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/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/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/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/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'
[]
[]
(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
[]
(modules/solid_mechanics/test/tests/lagrangian/cartesian/total/homogenization/scalar_kernel/2dscalar.i)
# 2D with mixed conditions on stress/strain
[GlobalParams]
displacements = 'disp_x disp_y'
large_kinematics = false
macro_gradient = hvar
[]
[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 = HomogenizedTotalLagrangianStressDivergenceS
variable = disp_x
component = 0
macro_var = hvar
constraint_types = ${constraint_types}
targets = ${targets}
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergenceS
variable = disp_y
component = 1
macro_var = hvar
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[Problem]
kernel_coverage_check = false
error_on_jacobian_nonzero_reallocation = true
[]
[Functions]
[strain11]
type = ParsedFunction
value = '4.0e-2*t'
[]
[strain22]
type = ParsedFunction
value = '-2.0e-2*t'
[]
[strain12]
type = ParsedFunction
value = '1.0e-2*t'
[]
[stress11]
type = ParsedFunction
value = '400*t'
[]
[stress22]
type = ParsedFunction
value = '-200*t'
[]
[stress12]
type = ParsedFunction
value = '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 = ComputeHomogenizedLagrangianStrainS
constraint_types = ${constraint_types}
targets = ${targets}
[]
[]
[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'
# solve_type = 'PJFNK'
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/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
[]
(test/tests/meshgenerators/stitched_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 = StitchedMeshGenerator
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/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'
[]
[]
(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/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
[]
(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
[]
(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
function = 0
[]
[inlet-v]
type = INSFVInletVelocityBC
boundary = 'bottom'
variable = v
function = 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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
targets = 'stress11 zero zero stress12 stress22 zero stress13 stress23 stress33'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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
[]
(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"
[]
[]
(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.
#
[Problem]
coord_type = RZ
rz_coord_axis = Y # this is modified through CLI args to test Z-R as opposed to R-Z
[]
[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
[]
[]
[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
[]
(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/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/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'
[]
[]
(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/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/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/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/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/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
[]
[]
(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/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/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]
coord_type = RZ
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
[]
[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'
[]
[]
(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/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
[]
[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/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
[]
[]
(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/stitched_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 = StitchedMeshGenerator
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
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[penalty_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
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 = TagVectorAux
vector_tag = 'ref'
v = 'disp_x'
variable = 'react_x'
[]
[react_y]
type = TagVectorAux
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
[]
[]
(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'
[]
[]
(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
[]
(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/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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = friction_uo
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = friction_uo
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = friction_uo
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = friction_uo
contact_quantity = tangential_velocity_one
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
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/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
[]
(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
(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
[]
(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/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
E_real = E_real
E_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
E_real = E_real
E_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
[]
(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
[]
(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/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/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
[../]
[]
(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
[]
(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/peridynamics/test/tests/mesh/Error_nonexisting_blockID.i)
[Mesh]
type = PeridynamicsMesh
horizon_number = 3
[./fmg]
type = FileMeshGenerator
file = 2D_2blocks.e
[../]
[./gpd]
type = MeshGeneratorPD
input = fmg
retain_fe_mesh = false
blocks_to_pd = 3
[../]
[]
# This input file is intended to be run with the "--mesh-only" option so
# no other sections are required
(modules/peridynamics/test/tests/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
(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
[]
(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
[]
(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/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
[]
(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/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
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
constraint_types = ${constraint_types}
targets = ${targets}
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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
[]
(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/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
[]
(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
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_contact_block
contact_quantity = normal_pressure
[]
[penalty_frictional_pressure_auxk]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_contact_block
contact_quantity = tangential_pressure_one
[]
[penalty_accumulated_slip_auxk]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_contact_block
contact_quantity = accumulated_slip_one
[]
[penalty_tangential_vel_auxk]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_contact_block
contact_quantity = tangential_velocity_one
[]
[real_weighted_gap_auxk]
type = PenaltyMortarUserObjectAux
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
hide = 'nodal_area penetration contact_pressure'
[chkfile]
type = CSV
start_time = 0.0
execute_vector_postprocessors_on = FINAL
[]
[console]
type = Console
max_rows = 5
[]
[]
[Debug]
show_var_residual_norms = 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
[]
(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/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-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/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
[]
(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
[]
(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/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
[../]
[]
(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
[]
(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/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
[]
[Problem]
coord_type = RZ
[]
[Mesh]
[file]
type = FileMeshGenerator
file = cyl2D.e
[]
[]
[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/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
[]
[]
(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/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/LATEST # You may also use a specific number here
kernel_coverage_check = false
material_coverage_check = false
# disp_y has an initial condition despite the checkpoint restart
allow_initial_conditions_with_restart = true
[]
[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
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 = 6 # 70
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 -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 -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
[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/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'
[]
[]
(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'
[]
[]
(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/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/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/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/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'
[]
[]
(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
[]
(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
[]
[]
(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.25 # 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]
exodus = true
[checkfile]
type = CSV
show = 'cont_press friction'
start_time = 0.0
execute_vector_postprocessors_on = FINAL
[]
[checkpoint]
type = Checkpoint
num_files = 2
time_step_interval = 1
[]
[]
[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/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'
[]
[]
(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
[../]
[]
(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'
[]
[]
(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/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
function = '1.1'
[]
[inlet-v]
type = INSFVInletVelocityBC
boundary = 'inlet'
variable = vel_y
function = '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
[]
(modules/contact/examples/2d_indenter/indenter_rz_fine.i)
[GlobalParams]
volumetric_locking_correction = true
displacements = 'disp_x disp_y'
[]
[Problem]
coord_type = RZ
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
[]
[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
[]
(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'
[]
[]
(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
[]
[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'
[]
[]
(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'
output_properties = '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/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
[]
(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/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/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/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_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/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/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
[]
(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/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/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/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_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
[]
(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/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/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/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/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/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'
macro_gradient = hvar
homogenization_constraint = homogenization
[]
[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
[]
[]
[UserObjects]
[homogenization]
type = HomogenizationConstraint
targets = 'stress11 stress12 stress22 stress13 stress23 stress33'
execute_on = 'INITIAL LINEAR NONLINEAR'
[]
[]
[Kernels]
[sdx]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_x
component = 0
[]
[sdy]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_y
component = 1
[]
[sdz]
type = HomogenizedTotalLagrangianStressDivergence
variable = disp_z
component = 2
[]
[]
[ScalarKernels]
[enforce]
type = HomogenizationConstraintScalarKernel
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/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'
[]
[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'
[]
[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'
[]
[]
(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/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
[]
(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'
[]
(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
[]
(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
[]
(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/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
[]
(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/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/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/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/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/solid_mechanics/test/tests/shell/static/pressure_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.
# 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.
[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 = ADPressure
variable = disp_x
displacements = 'disp_x disp_y disp_z'
factor = -50
boundary = '3'
use_displaced_mesh = false
[]
[]
[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/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
[]
(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/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
[]
(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/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/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
[]
[]
(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 = PenaltyMortarUserObjectAux
variable = penalty_normal_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = normal_pressure
boundary = 3
[]
[penalty_frictional_pressure]
type = PenaltyMortarUserObjectAux
variable = penalty_frictional_pressure
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_pressure_one
boundary = 3
[]
[penalty_tangential_vel_one]
type = PenaltyMortarUserObjectAux
variable = tangential_vel_one
user_object = penalty_friction_object_al_friction
contact_quantity = tangential_velocity_one
boundary = 3
[]
[penalty_accumulated_slip_one]
type = PenaltyMortarUserObjectAux
variable = accumulated_slip_one
user_object = penalty_friction_object_al_friction
contact_quantity = accumulated_slip_one
boundary = 3
[]
[normal_lm]
type = PenaltyMortarUserObjectAux
variable = normal_lm
user_object = penalty_friction_object_al_friction
contact_quantity = normal_lm
boundary = 3
[]
[normal_gap]
type = PenaltyMortarUserObjectAux
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
[]
[]